c#相关
Kt_KID
这个作者很懒,什么都没留下…
展开
-
VS2019打开项目加载失败:无法找到 .NET Core SDK
1、打开protobuf的工程提示无法找到 .NET Core SDK,于是用命令行.dotnet --info,发现是有安装的2、猜测可能是global.json中指定的版本已安装的不一致,但是搜索工程里却找不到global.json。3、找一下MSDN关于这个文件的说明,很明显了,就是缺失global.json文件导致的,于是按照这个语法在工程根目录条件一个global.json文件即可,注意版本号要使用已安装的版本号。ok,加载成功...原创 2021-08-01 11:47:07 · 1166 阅读 · 0 评论 -
c#装箱与拆箱(Boxing&Unboxing)
1、装箱:值类型转换成引用类型装箱时将发生: 在托管堆分配内存,分配的内存大小是值类型各字段所需的内存大小之和,还要加上托管堆所有对象都有的两个额外成员(类型对象指针和同步块索引)所需的内存量 值类型的字段复制到新分配的堆内存 返回对象地址,该地址是对象引用:值类型成了引用类型 该对象一直存在于堆内存中,直至被垃圾回收 2、拆箱:获取已装箱的堆内存上对象的各个字段地址,是一个获取指针地址的过程拆箱时将发生: 如果包含“对已装箱值类型实例引用”的变量为原创 2021-07-22 23:56:13 · 1127 阅读 · 0 评论 -
Unity中 使用c# 自定义的值类型作为dictionary的key需注意
public struct DictStruct : IEquatable<DictStruct>{ public int x; public int y; public DictStruct(int x) { this.x = x; y = 0; } public bool Equals(DictStruct other) { return x == other.x; } public override int GetHashCode() { retur.原创 2021-06-12 23:21:22 · 1000 阅读 · 0 评论 -
C#---类与结构体-引用与拷贝
今晚遇到一个结构体赋值拷贝的问题,是一个List 的数据结构,想通过 list[index].fun() (fun())是结构体的一个方法,改变结构体的一个变量的值,最后发现list[index]的值并没有改变public struct Point{ public int x; public Point(int x) { this.x = x; } public void Set(int v) { x = v; }原创 2021-06-11 00:24:05 · 1258 阅读 · 0 评论 -
c#实现和自定义扩展方法
扩展方法扩展方法其行为类似于某种类型(类、接口、结构体、原始值或枚举)的实例方法,目的为了增加原本类型不支持或需要多步操作的功能,所以扩展类命名一般为xxxExtensions。例如下面代码 public static class StringExtension { public static int WordCount(this String str) { return str.Split(new char[] {' ', '.'原创 2021-04-26 00:46:22 · 317 阅读 · 0 评论