枚举: (就是特殊的一类数值用变量打成一个包) enum haha { a = 1, b, c }; //要写在namespace外面 for (int i = 1; i <= 3 ; i++) { Console.WriteLine("{0}{1}{2}", haha.a, haha.b, haha.c); } 恩?结果不是 123 而是 abc哦. 看看帮助要求用显式转换才行 for (int i = 1; i <= 3 ; i++) { Console.WriteLine("{0}{1}{2}", (int)haha.a, (int)haha.b, (int)haha.c); } OK!输出123 ==================== 结构: 这个看起来应该是把不同类型的数据打成一个包.(如年龄 身高 体重 性别 婚否....) 结构具有以下特点: 结构是值类型,而类是引用类型。 向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。 与类不同,结构的实例化可以不使用 new 运算符。 结构可以声明构造函数?,但它们必须带参数。 一个结构不能从另一个结构或类继承,而且不能作为一个类的基?。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。 结构可以实现接口?。 在结构中初始化实例字段?是错误的。 其中有几句不大理解.没关系 先学会模仿着使用基本的^_^ 为了让外面访问,定义结构体需要用Public关键字 struct hehe//这段还是要写在外面 { public haha ha; public int num; } hehe tmp;//实例化 tmp.ha = haha.a;//按类型赋值 tmp.num = 5; Console.WriteLine("{0}-{1}", (int)tmp.ha, tmp.num);//输出 输出结果:1-5 (恩 学东西的时候,尽量自己改个字母啊 类型啊什么的,最好不要完全照书写,这样印象会深刻.) (另外书上的定义尽量让自己找个方式理解,如果实在理解不上去再背好了...加菲猫的名言是:当你无 法打败你的敌人时,就加入他们!(从内部攻克hoho)) ==================== 数组: 这个东西和Lisp里面的表特别像,但是没有表那样自由. 数组类型从类型 System.Array 继承而来。 ==================== 又一个system. 这个system里面都有什么呢?帮助一下...system命名空间 东西好多.....咦 里面有一个Random类 用于生成随机数的 偷偷研究一下^_^ 帮助写的真麻烦,百度一个 public static string GetRandomNum() { Random seed = new Random(); Random randomNum = new Random(seed.Next()); return randomNum.Next().ToString(); } 这个看起来简单些 再看看帮助里面关于next的 恩 还有个NextDouble 成员 尝试改一改看看: public static double GetRandomNum() { Random seed = new Random(); return seed.NextDouble(); } 这回多简单 每次调用都有不同的随机值了 for (int i = 1; i < 20; i++) { Console.WriteLine("{0}", GetRandomNum()); } 返回值都一样?看看帮助里面有个Thread.Sleep( 1 ); 可能和这个有关? 加进去无效,错误 1 当前上下文中不存在名称“Thread” 哦 前面还要加个引用using System.Threading; 试试看看 OK 即时生成20个不同的随机数,我现在会用C#生成随机数了!(可以写个双色球选号器了^_^) (如果MSDN看不清楚,就去百度一下好了....同时不要拿来主义,自己一定要尽量改改) ===================== 跑题了,回来接着学习数组. int[] MyArray = { 1, 2, 3 }; for (int i = 1; i <= 3; i++) { Console.WriteLine("{0}", MyArray); } 错误 下标是从0开始的... for (int j = 0; j < MyArray.Length; j++) { Console.WriteLine("{0}", MyArray[j]); } OK 输出 1 2 3 int[] MyArray = new int[2]{1, 2, 3 };;//这段按照书上写的为什么错误呢?
|