clr via c# 类型基础
2021-01-15 05:13
标签:cto 否则 for only 运行 数据 显示 led com 1,类型转换 2,使用 is 和 as 进行转换 is指定对象是否兼容常见用法: as 则 对对象进行尝试转换,如果失败则为null. 3,关键字影响 4,CLR如何调用虚方法,属性和事件 OK 5,const 和 readonly 的区别 const 将生成元数据,嵌入到应用程序的元数据中 readonly 修饰的字段,可以在构造器中进行更改,也可以通过反射技术进行更改,并且其影响应用程序。 6,实列构造器和类 构造器.ctor ----用于将实列初始化为良好状态 如果没有指定构造器,他将简单调用基类的构造器 7,类型构造器----类首次被访问时,执行代码 8,操作符重载和转换操作符重载 可以查看 Decimal类 9,扩展方法 扩展方法 -----允许定义一个静态方法,并用实列方法的语法来调用它 clr via c# 类型基础 标签:cto 否则 for only 运行 数据 显示 led com 原文地址:https://www.cnblogs.com/frogkiller/p/12241835.html
static void Main(string[] args)
{
object o1 = new object();
object o2 = new B();
object o3 = new D();
object o4 = o3;
B b1 = new B();
B b2 = new D();
D d1 = new D();
//B b3 = new object();
//D d2 = new object();
if(b1 is D)
{
D d2 = (D)b1;//该代码不会运行。
}
}
Employee e = o as Employee;
if(e!=null)
{
//操作e
}
C#关键字
类型
方法/属性/事件
常量/字段
abstract
表示不能构造该类实列
表示派生类必须重写并实现该成员
virtual
表示派生类可以重写该成员
override
表示派生类型正重写该成员
sealed
标识该类不能作为基类
表示这个成员不能被派生类型重写。
new
虚方法
实列方法
静态方法
call
OK
OK
callvirt
OK
OK
public class SomeType{}
// 等价于
public class SomeType{
public SomeType():base(){}
}
89public class SomeType{}
// 等价于
public class SomeType{
static SomeType():base(){}
}
class Program
{
static void Main(string[] args)
{
A a1 = new A("abc");
// a1.ShowA();
new[] { "a", "b" }.Show();
Console.ReadKey();
}
}
public class A
{
public string value { get; set; }
public A(string b)
{ value = b; }
}
public static class A1
{
public static void ShowA(this A b1)
{
Console.WriteLine("A"+b1.value);
Console.ReadKey();
}
public static void Show