摘要:
怎么配置Live Writer来写blog C#: 1.迭代器 c#迭代器 C#中如何使用迭代器 2.委托 带有命名方法的委托与带有匿名方法的委托 何时使用委托而不使用接口 3.多态性 C#概念之多态性 4.关键字 c#语法之new 修饰符 c#语法之static修饰符 c#语法之volatile关键字 C#语法之event关键字 C#语法之virtual关键字... 阅读全文
摘要:
创建迭代器最常用的方法是对 IEnumerable 接口实现 GetEnumerator 方法,例如: public System.Collections.IEnumerator GetEnumerator() { for (int i = 0; i < 10; i++) { yield return i; ... 阅读全文
摘要:
迭代器是一种方法、get 访问器或运算符,它通过使用 yield 关键字对数组或集合类执行自定义迭代。yield 返回语句会导致源序列中的元素在访问源序列中的下一个元素之前立即返回给调用方。尽管您以方法的形式编写迭代器,但编译器会将其转换为一个实际上是状态机的嵌套类。只要客户端代码中的 foreach 循环继续进行,此类就会跟踪迭代器的位置。 若要了解编译器在后台执行了什么操作,请使用 ILDA... 阅读全文
摘要:
查询基本上是一组有关如何检索和组织数据的指令。若要执行查询,需要调用它的 GetEnumerator 方法。当您使用 foreach 循环来循环访问元素时,将执行此调用。若要在执行 foreach 循环之前或之后的任何时间存储结果,只需对查询变量调用下列方法之一: ToList)>) ToArray)>) ToDictionary ... 阅读全文
摘要:
此示例演示如何以返回值和输出参数的形式从方法中返回查询。 任何查询的类型都必须为 IEnumerable 或 IEnumerable)>),或一种派生类型(如 IQueryable)>))。因此,返回查询的方法的任何返回值或输出参数也必须具有该类型。如果某个方法将查询具体化为具体的 List)>) 或 Array 类型,则认为该方法在返回查询结果(而不是查询本身)。仍然能够编写或修改从方法中返回... 阅读全文
摘要:
此示例演示如何对一个 Student 对象列表执行简单查询。每个 Student 对象都包含一些有关该学生的基本信息,以及一个表示该学生的四次考试得分的列表。 此应用程序充当此部分中其他很多示例的框架,这些示例都使用相同的 students 数据源。 下面的查询返回那些在其第一次考试中得分为 85 分或更高的学生。 public class StudentClass ... 阅读全文
摘要:
本主题演示在 C# 中编写 LINQ 查询的三种方式: 使用查询语法。 使用方法语法。 组合使用查询语法和方法语法。 下面的示例使用前面列出的每种方式演示一些简单的 LINQ 查询。一般的规则是尽可能使用 (1),而在必要时使用 (2) 和 (3)。 这些查询作用于简单的内存中集合;但是,基本语法与 LINQ to SQL ... 阅读全文
摘要:
委托可以与命名方法关联。使用命名方法对委托进行实例化时,该方法将作为参数传递,例如: // Declare a delegate: delegate void Del(int x); // Define a named method: void DoWork(int k) { /* ... */ } // Ins... 阅读全文
摘要:
委托和接口都允许类设计器分离类型声明和实现。任何类或结构都能继承和实现给定的接口。可以为任何类上的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢? 在以下情况下,请使用委托: 当使用事件设计模式时。 当封装静态方法可取时。 ... 阅读全文
摘要:
C# 语言经过专门设计,以便不同库中的基类与派生类之间的版本控制可以不断向前发展,同时保持向后兼容。这具有多方面的意义。例如,这意味着在基类中引入与派生类中的某个成员具有相同名称的新成员在 C# 中是完全支持的,不会导致意外行为。它还意味着类必须显式声明某方法是要重写一个继承方法,还是一个隐藏具有类似名称的继承方法的新方法。 在 C# 中,派生类可以包含与基类方法同名的方法。 ... 阅读全文
摘要:
C# 中的每个对象都继承 ToString 方法,此方法返回该对象的字符串表示形式。例如,所有 int 类型的变量都有一个 ToString 方法,此方法可让这些变量将其内容作为字符串返回: int x = 42; string strx = x.ToString(); System.Console.WriteLine(strx); 创建自定义类或结... 阅读全文
摘要:
通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。C# 中的每种类型都是多态的。类型可用作它们自己的类型或用作 Object 实例,因为任何类型都自动将 Object 当作基类型。 多态性不仅对派生类很重要,对基类也很重要。任何情况下,使用基类实际上都可能是在使用已强制转换为基类类型的派生类对象。基类的设计者可以预测到其基类中可能... 阅读全文
摘要:
virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。例如,此方法可被任何继承它的类重写。 public virtual double Area() { return x * y; } 虚拟成员的实现可由派生类中的重写成员更改。 调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派... 阅读全文