C#常用及注意点
参考:C#文档
变量、常量、字段、属性
变量,可变化的
字段、属性都是变量
常量
使用关键字const ,常量在声明时必须初始化,且不可变的
prinvate const int a
字段
private int a
属性
属性是一种成员,它提供灵活的机制来读取、写入或计算私有字段的值。 属性可用作公共数据成员,但它们实际上是称为访问器的特殊方法。 这使得可以轻松访问数据,还有助于提高方法的安全性和灵活性。
private int a {get; set;}
方法重载
参考:
构造函数
构造函数概述
- 如果类没有构造函数,则 C# 将默认自动创建一个无参构造函数,且没有方法体,类被调用时会调用这个无参构造函数
- 如果类有一个有参构造函数,C#就不会自动创建无参构造函数了,且没有无参构造函数的情况下,类被调用时就会直接调用这个有参构造函数
- 实例构造函数:new 类名()
- : this() :调用本类的其他构造函数,也叫构造函数复用
控制器中的构造函数
ASP.NET MVC5控制器的构造函数:
- 可以有多个构造函数,调用控制器的方法前会把全部构造函数都调用一次
- 使用依赖注入框架后多控制器中有多个构造函数也没有问题
ASP.NET Core控制器、Razor页面响应类的构造函数:
- 只能有一个构造函数,多个构造函数会报错,初步认定可能是ASP.NET Core限制了页面响应类和控制器只能有一个构造函数,也有可能是框架中的依赖注入模块有限制
- 有时间检查asp.net core mvc视图引擎的源码和这个框架依赖注入的源码???
结构
参考:
深拷贝和浅拷贝
深拷贝:复制整个对象了
浅拷贝:只是引用对象,没有复制对象
实例化对象
如这样:class a=new class()
左边是声明对象,右边new是创建对象
声明对象
class a 就是声明对象,此时a是null的,没有开辟空间。
可以用 var a 代替 class a
创建对象
new class()是创建对象,开辟了内存空间。
创建临时对象:如只有new class();时,可以直接使用。
动态类型dynamic与反射
参考:
动态类型代替反射
动态类型dynamic性能比反射高,尤其是使用频繁的地方,能用动态类型dynamic代替反射的都建议用动态类型
泛型
委托和事件
分部类
参考:
关键字:partial
扩展方法
参考:
常用方法
更详细请看:常用方法字典
String
Contains:包含
作者:日积月累码农
如有错误,欢迎您指出。
本文版权归作者和博客园共有,欢迎转载,但必须在文章页面给出原文链接,否则保留追究法律责任的权利。
本文版权归作者和博客园共有,欢迎转载,但必须在文章页面给出原文链接,否则保留追究法律责任的权利。