优雅的C#
2024-10-08 08:25:21
- @符号:字符串中的转义符不转义,可支持字符串换行,例如:string test = "hello\\",正常输出hello\,改成string test = @"hello\\",输出hello\\
- ??:a??b??c,a为null,返回b,b也为null,返回c
- $:相当于string.Format,string test = $"{变量} test"
- 使用属性,好处是可以将成员变量的读写权限分开
public GameObject ComGameObject
{
get => this.comObj;
set => this.comObj = value;
} - 条件属性,运行时的行为,区别有条件编译,代码更优雅
[Conditional("DEBUG")]
static void Print1()
{
Console.WriteLine("You defined the Debug parameter");
} - 等同性判断
public static bool ReferenceEquals(object left, object right); (判断引用,值类型回false)
public static bool Equals(object left, object right); (都可以判断,引用同上,值判断用的是反射,效率低)
public virtual bool Equals(object right); (重写时,需要重写GetHashCode,用作为MapKey时)
public static bool operator ==(MyClass left, MyClass right);(值类型都要重写) - 短小方法,在C#中代码先被变成IL,然后在运行前被JIT编译成Native Code。JIT是按照方法进行编译的,也就是说它会在真正需要某一个方法之前编译它。这样,尽可能小的方法会减少我们程序的载入时间
在C#中写短小,清晰的方法。这样不会让我们的程序变慢,而会使我们的程序更容易理解,载入更快 - 值类型和引用类型的选择——如果只是数据的存储,并且所有 public 的接口(属性和方法)都是只是访问数据而不是修改数据才使用值类型,其他情况都选择引用类型
- new 在派生类里使用,可以显示地屏蔽基类中相同名字的内容
最新文章
- MySql: 查看当前登录用户,当前数据库
- angular中$cacheFactory缓存的使用
- iOS开发小技巧--字典和数组的中文输出
- gawk
- json数据处理技巧(字段带空格、增加字段)
- POJ 3641
- C#_自动化测试1_模拟post,get_12306火车票网站自动登录工具
- 怎么使用jQuery在DIV适应屏幕大小一直居中
- JavaScript 入門
- BZOJ 3622
- 自定义Form组件
- HOOK NTFS 禁止格式化
- Android学习之基础知识十一 —运用手机多媒体
- C# http监听之Nancy.net
- 2019.01.23 ural1519 Formula 1(轮廓线dp)
- ";will you marry me"; vs ";would you marry me";
- CentOS 6.9升级GCC至7.3.0版本
- ggplot2作图详解:入门函数qplot
- react中父组件调用子组件的方法
- Mysql双主实战
热门文章
- Docker学习(十一)Docker系列结束-新的开始K8S
- mysql的压缩版安装
- Spring Cloud Contract 微服务契约测试
- Spring(三)核心容器 - ApplicationContext 上下文启动准备
- Ubuntu16手动安装OpenStack
- 开源项目SMSS发开指南(四)——SSL/TLS加密通信详解
- Shell常用命令之ip
- 论文翻译:Mastering the Game of Go without Human Knowledge (第一部分)
- 异常处理 | java.lang.IllegalArgumentException: Request header is too large
- java.net.UnknownHostException 异常处理(个人案例)