以下是引用vs_inzaghi在2010-8-21 21:03:51的发言:
刚开始看C#,想请教几个问题:
1、int[] array1 = new int[]{1,2,3,4,5};这句话中,new的意思是什么,new是变量修饰符吧?那么是什么意思呢?比如public的意思我知道是公共的,都可以用的……
2、常量的类型可以省略么?比如const PI=3.1415926这句话
3、如果在Main方法中又使用了其他的方法,比如使用了自己定义的方法Find,那么这个Find方法可以在Main方法之后定义么?还是必须在Main方法之前定义?如果在之后定义,需要像C一样在Main方法中声明么?
4、枚举变量的值不能直接赋给其他类型的变量么?比如这句:int i = (int)DayOfWeek.Monday;
5、Console.WriteLine()这句是换行么?那么为什么有些例子里面没有这句好像输出的结果也可以换行啊?
6、像decimal pi = 3.14159M;这句话中,M可以省略么?写不写M有什么区别么?
7、MessageBox.show的完整格式是什么?"+"有什么作用?
8、各种类的方法,比如Array类中的那些FindAll之类的方法,方法就是C中的函数吧?那么在哪能找到这些方法的原型啊?就是其中的参数该怎么写?我的书上没有,很是郁闷……
……
暂时请教这么多,多谢大侠们不吝赐教……
1、C++里的new在堆中分配一段存储空间,C#中也一样,但是C# .net是托管代码,所以不需要像C++一样释放堆空间,GC(垃圾收集器)将会帮我们自动释放这些空间。
2、不可以,这个和C++是一样的,常量也必须有一个类型。因为C#和C++都是强类型语言。
3、可以。这点和C/C++不一样,C/C++要使用一个类、或者一个函数、外部变量都需要事先声明,而C#不一样,C#可以直接访问,不需要声明。
4、可以,这个是和C++一样,每一个枚举都是代表一个值,你可以使用强类型转换来获取它的值。反过来也一样,但要使用Enum.Parse方法来将值转换成枚举。
5、是。通过在字符串中加入"\n"也可以实现换行。
6、可以,M代表一个类型标识,如果没有M,在C#中,默认是D(双精度浮点型)。就像这样3.1344F,这是代表一个单精度浮点型。
7、MessageBox.Show有很多种重载方法,常用的方法有MessageBox.Show("This is a test."); || MessageBox.Show("Content", "Title", MessageBoxButtons.OK, MessageBoxIcon.Information);,具体请参照MSDN。MessageBox.Show就是弹出一个提示框,提示用户一些信息。(可以配置这个提示框中的按钮控件的个数和图标)。
8、强烈建议楼主装一个MSDN2008,这类的所有问题都可以解决了。
共同进步。