摘要: 匿名类型: var curry = new { MainIngredient = "lamb", Style = "red", Spiciness = 1 };见以下代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace VarDemo{ public class Curry { public stri... 阅读全文
posted @ 2013-11-02 17:36 zzunstu 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 一.varC#是一种强类型化的语言,这表示每个变量都有固定的类型,只能用于接受该类型的代码中。int myvar = 5;C#3.0引入了新关键字var,它可以代替前面的代码中的type:var myvar = 5;myvar是int类型的变量,而不是var类型的变量,这一点非常的重要,使用var时,并不是声明了一个没有类型的变量,也不是声明了一个类型可以变化的变量,否则C#就不在是强类型化语言了。如果编译器不能确定用var声明的变量类型,代码就不会通过编译,因此,在用var声明变量时,必须同时初始化该变量,因为如果没有初始化,编译器就不能确定该变量的类型。var关键字还可以通过数组初始化器来 阅读全文
posted @ 2013-11-02 16:58 zzunstu 阅读(340) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CtorDemo{ public class Curry { //也可以没有构造函数 public Curry() { } public string MainIngredient { get; set; } public string Style ... 阅读全文
posted @ 2013-11-02 16:17 zzunstu 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一 常量与字段(一) 常量 常量总是被视为静态成员,而不是实例成员。定义常量将导致创建元 数据。代码引用一个常量时,编译器会在定义常量的程序集的元数据中查找该符号,提取常量的值,并将值嵌入IL中。由于常量的值直接嵌入IL,所以在运行时 不需要为常量分配任何内存。此外,不能获取常量的地址,也不能以传递引用的方式传递常量。这些限制意味着,没有很好的跨程序集版本控制特性。因此,只有在 确定一个符号的值从不变化时,才应该使用。如果希望在运行时从一个程序集中提取一个程序集中的值,那么不应该使用常量,而应该使用 readonly 字段。(二) 字段 CLR支持类型字段和实例字段。对于类型字段,用于容纳.. 阅读全文
posted @ 2013-11-01 16:51 zzunstu 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 传入某个属性的set方法的隐含参数的名称是什么?value,它的类型和属性所声名的类型相同。如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称。C#支持多重继承么?不支持。可以用接口来实现。被protected修饰的属性/方法在何处可以访问?在继承或间接继承与这个类的子类中可以访问。私有成员会被继承么?会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。请描述一下修饰符protected internal。被protected internal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。C#提供一个默认的无参数构造函数,当我实现 阅读全文
posted @ 2013-10-31 00:06 zzunstu 阅读(166) 评论(0) 推荐(0) 编辑
摘要: abstract class与interface区别?大致总结: 定义:声名方法而不去实现它的类叫做抽象类(abstract class); 接口(interface)是抽象类的变体。 区别: 1)、抽象类的方法可以是抽象方法,还可以包含具体数据和具体方法。接口中的方法不能实现,必须由继承的类来实现;接口只能定义static final成员变量。 2)、抽象类和接口都可以被继承,但类只能单一继承,而接口可以继承多个。 3)、通常接口用于平时常用功能,便于日后维护添加和删除功能;而抽象类充当公共方法的角色,不适用于日后重新对里面的代码进行修改。 4)、当一个类中包含一个或多个抽... 阅读全文
posted @ 2013-10-30 23:59 zzunstu 阅读(150) 评论(0) 推荐(0) 编辑
摘要: static void PickupMax2(int[] digits) { if (digits.Length max1) { max2 = max1; max1 = i; } } Console.WriteLine("max1: {0}, max2: {1}", max1, max2); } 阅读全文
posted @ 2013-10-30 23:58 zzunstu 阅读(415) 评论(0) 推荐(0) 编辑
摘要: ASCII:数字:48-57空格:32大写英文:65-90小写英文:97-122几个结论:ASCII不能保存中文;UTF8是变长编码。在对ASCII字符编码时,UTF更省空间,只占1个字节,与ASCII编码方式和长度相同;Unicode在对ASCII字符编码时,占用2个字节,且第2个字节补零。UTF8在对中文编码时需要占用3个字节;Unicode对中文编码则只需要2个字节。===============================程序如下=================================== string s1 = "b"; st... 阅读全文
posted @ 2013-10-30 16:54 zzunstu 阅读(296) 评论(0) 推荐(0) 编辑
摘要: c#所有的类型都继承自System.Object: 1>值类型继承自System.ValueType;namespace System{ // Summary: // Provides the base class for value types. [Serializable] [ComVisible(true)] public abstract class ValueType { // Summary: // Initializes a new instance of the System.ValueType c... 阅读全文
posted @ 2013-10-29 21:56 zzunstu 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 用foreach遍历访问的对象需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型。先来看看IEnumerable接口:namespace System.Collections{ // Summary: // Exposes the enumerator, which supports a simple iteration over a non-generic // collection. [ComVisible(true)] [Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A"... 阅读全文
posted @ 2013-10-29 11:01 zzunstu 阅读(2117) 评论(0) 推荐(0) 编辑