随笔分类 - C#
摘要:using System;namespace C4特性{ public class FeatureOne { public string Key { get; set; } public string Value { get; set; } } class Program { //dynamic public static void DemoOne() { //在c#中使用js动态语言的特性,前提是将一个变量声明为FeatureOne类型。 dynam...
阅读全文
摘要:定义扩展方法当定义一个扩展方法时,第一个限制就是必须把方法定义在静态类中,因此每一个扩展方法也必须声明为静态的。第二个限制是扩展方法要用this关键字对第一个参数进行修饰,这个参数也就是我们希望进行扩展的类型。比如下面的扩展方法允许.NET基类库中的所有对象都拥有全新的方法DoSomeThing()。代码如下:class Program { static void Main(string[] args) { int d = 123; //实例层次上调用 d.DoSomeThing...
阅读全文
摘要:using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DeleGateTest { public delegate void GreetingDelegate(string _name); class Program { ...
阅读全文
摘要:注意点:c#要求所有的运算符重载都声明为public和static ,表示他们与他们的类或者结构相关,而不是与实力相关,所以运算符重载的代码体不能访问非静态类成员,也不能访问this标识符using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 运算符重载{ class Vector { public int x; public int y; public int z; public Vector(in...
阅读全文
摘要:在类声明中使用sealed可防止其它类继承此类;在方法声明中使用sealed修饰符可防止扩充类重写此方法。sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。密封类:密封类在声明中使用sealed 修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的。在哪些场合下使用密封类呢?实际上,密封类中不可能有派生类。如果密封类实例中存在虚成员函数,该成员函数可以转化为非虚的
阅读全文
摘要:C#允许把类和函数声明为abstract,抽象类不能实例化,而抽象函数没有执行代码,必须在非抽象的派生类中重写。显然,抽象函数也是虚拟的(但也不需要提供virtual关键字,实际上,如果提供了该关键字,就会产生一个语法错误)。如果类包含抽象函数,该类将也是抽象的,也必须声明为抽象的:abstract class Building{ public abstract decimal CalculateHeatingCost(); // abstract method}C++开发人员要注意C#中的一些语法区别。C#不支持采用=0语法来声明抽象函数。在C#中,这个语法有误导作用,因为可以在类声明的成员
阅读全文
摘要:C#中new和override是继承中经常用到的两个关键字,但是往往有时候容易把这两个关键字的作用搞混淆。newC# new关键字表示隐藏,是指加上new关键字的属性或函数将对本类和继承类隐藏基类的同名属性或函数public class A{ public virtual void Method() { Console.WriteLine("This Method in Class A!"); }}public class B : A{ public new void Method() { Console.WriteLine("This Method in Cla
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace InheritingTest{ class BeInheritingedOne { public static string StrOne="I am from BeInheritinged one"; public static void ShowInheritingOne() { Console.WriteLine(StrOne); ...
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace InheritingTest{ class BeInheritingedOne { public static string StrOne="I am from BeInheritinged one"; public static void ShowInheritingOne() { Console.WriteLine(StrOne); ...
阅读全文
摘要:Partial Class ,部分类 或者分布类。顾名思义,就是将一个类分成多个部分。比如说:一个类中有3个方法,在VS 2005将该类中3个方法分别存放在3个不同的.cs文件中。这样做的好处:1、一个大型的项目类可以同时分成不同的区块交由不同的程序员拽写,同时进行。2、若由系统自动产生的source,可以用独立的Partial Class加入,而不必更改到原先类。3、当类(Class)很大时,可以用Partial Class做功能性划分,这也是一种不错的分类方式。 如果您在开发项目的公用函数库,用于公用函数库的内容越丰富越好,但这不可能一下子就写好,需要一点一点的积累,这时就可以使用Par.
阅读全文
浙公网安备 33010602011771号