看了这3小节,发现作者讲得太详细了,把一个都在正常使用的用法说得太神密了,搞得不知是自己不懂作者的苦心,还是作者用意为之,这里给大家都简单讲下吧,太深的真心讲不下去. 1.可空类型的核心部分是System.Nullable<T>,除了这个之外,还有由静态类System.Nullable提供的工具方法. 2.Nullable<T>是一个泛型类型,类型参数T是一个值类型约束. 3.T的类型称为可空类型的基础类型. 4.Nullable<T>有两个构造函数,一个用于创建没有值…
c# 8引入了新特性:"可为空引用"(详情),这个功能个人觉得挺好的,能够非常明确的表现程序设计者的意图,编译器能够进行检查,尽最大可能减小NullReferenceException错误. 如果是新项目,那么上手很简单,一点点搭建起来,遇山开山,遇河渡河.但是对于我这种手头上的项目大多都是以前创建的情况,就要稍微做那边么一点操作了. 要看完整说明,请查看开头的那个链接. 准备 首先评估一下几个条件: 项目可以基于.NET CORE 3.0及以上编译.如果不行,那么就请直接右上角点×.…
Null Reference Exception : Object reference not set to an instance of an object. 异常:空引用,对象的引用未设置到对象的实例. 出现该异常的位置: 可能是在调用组件时该组件还未实例化或未存储地址指针,需要查看是否将组件位置拽入代码公布的字段:还有注意Unity3D的生命周期,调整代码的执行顺序. (若有错误和不足之处,还望指正,谢谢!)    …
今天在导入character包后,引用了内置的第三人称素材,但是在启动的时候程序报空引用的错误: 引起错误的位置在: 错误原因是因为没有将摄像机的tag设置为maincamera,改为maincamera后错误解决.…
众多语言都会设计Option类型,例如Java 8和Swift都设计了Optional类型.其实这种类型早就出现在了函数式语言中,在OCaml和Scala中叫Option,在Haskell中叫Maybe.Option类型是为了解决了什么样的问题呢? null的局限性 你一定写过类似的C#代码: public string GetCustomerName(int id) { if (id < 0) return null; //.... } 这段代码有什么问题吗?null在这里代表了什么意思?是不…
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0]      An unhandled exception has occurred while executing the requestSystem.InvalidOperationException: 可为空的对象必须具有一个值.   在 System.ThrowHelper.ThrowInvalidOperationException(ExceptionR…
编译器错误消息: CS0012: 类型“System.Object”在未被引用的程序集中定义.必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用. 项目生成的bin文件夹下并没有生成 System.Runtime.dll: 在web.config中添加如下配置即可: <system.web>    <compilation debug="tr…
Razor视图引擎中,使用部分视图编译报错 类型“System.Object”在未被引用的程序集中定义.必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用 查找网上一些解决方案,在微软官网找到同样问题 最后解决方案: 在web.config文件system.web/compilation节点添加配置节点 <compilation debug="true&…
一.问题 我使用的是Entity Fromwork CodeFirst来操作数据库,昨天在使用startswith查询数据的时候发现一个问题,就是经常一直报空引用的错误,查了很久才找到原因,这里做一个备注,也希望能帮助遇到同样问题的人. 二.描述 为了方便描述我写了一个简单控制台程序,代码如下: static void Main(string[] args) { try { // QuoteDbContext db = new QuoteDbContext(); var query = GetP…
在网上看到BitmapSource和WriteableBitmap一些类听说是用 using System.Windows.Media.Imaging:可是我发现VS中没有什么System.Windows.Media.Imaging之类的框架,这就苦逼了,在网上也找不到,无意间发现原来引用不叫System.Windows.Media.Imaging,而是 PresentationCore 只需要在引用-->程序集-->框架-->PresentationCore找到这个就行了,另外我发现u…
一:值类型/引用类型的区别      值类型主要包括简单类型,枚举类型,和结构体类型等,值类型的实例通常被分配在线程堆栈上面变量保存的内容是实例数据本身.引用类型被分配在托管堆上,变量保存的是地址.引用类型主要包括类类型,接口类型,委托类型和字符串类型等. 关于参数传递,这里有四种:        值类型参数的按值传递:        引用类型参数按值传递: 关于string引用类型参数按值传递的特殊情况:虽然string类型也是引用类型,然而在按值传递时,传递的实参却不会因方法中形参的改变而被…
函数引用操作符 struct absInt { int operator()(int val) const { cout<<val<<"<->!!!"<<endl; return val<0 ? -val : val; } }; void fun1() { int i=-42; absInt absObj; int ui=absObj(i); } Function-Object Classes with State 函数对象类的状态…
Unity3d-Particle System 5.x系统的学习(四) 今天,我们来聊聊unity5.x的粒子系统和unity4.x粒子系统的区别. 我大致看了下,区别还是蛮多的,但是总体的粒子制作思路一样,只不过添加了很多子模块方便我们制作出更加美观的粒子. 下面是总体的粒子系统组件: 红色边框划出的就是unity5.x新增的子模块. ok,我们接下来分析每个模块的特征和参数: External Forces:(风(wind zone)对粒子的影响) 从英文表面意思解析:就是外部的力.(风力就…
C# 提供了一个所谓的 ”空接合操作符“ - 即??操作符,他要获取两个操作数. 假如左边的操作数部位null,就返回这个操作数.如果左边的操作数为null就返回右边. 空接合操作符一个妙处在于,它既能用于引用类型,也能用于空值类型. static void Main(string[] args) { Int32? b = null; //下面这行代码等价于 //x = (b.HasValue) ? b.Value : 123; Int32 x = b ?? ; string temp = "&…
解决方案: 找到C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0 ==>System.Web.Extensions.dll 将该文件添加至项目的bin文件夹下 再次右击项目属性,在应用程序-目标框架下,选择.netFramework4 最后,引用添加该dll文件即可.…
原因:生成项目对于的.net版本是2.0的.需要手动切换成4.0 操作步骤:右键项目,属性页面,下拉框选择最高版本.net 截图:…
大家可能经常遇到这种情况:当一个对象为null时,调用这个对象的方法或者属性时,就会报错:“Object reference not set to an instance of an object.”(未将对象引用到对象的实例).下面我们要使用扩展方法,来巧妙避免这种情况的发生. 首先新建一个类,定义为:NullUtils.cs,代码如下: namespace CSharpTools.Common.Helpers { public static class NullUtils { public…
原文:http://www.cnblogs.com/xdotnet/archive/2012/07/21/aspnet40_webpage20.html 一.可以直接使用“~”,而无需使用Href对象实例 这个是一大变化,给我们ASP.NET MVC开发人员带来了很便捷的代码书写方式,提高不少效率.在MVC3.0中加入我们需要加入一张图片时,需要在IMG标签的SRC属性加上 Url.Content或Href对象方法等来对路径进行解析.在WebPage 2.0中Razor模板引擎能够自动解析基于根…
若列表中某元素存在则返回之 任务: 你有一个列表L,还有一个索引号i,若i是有效索引时,返回L[i],若不是,则返回默认值v 解决方案: 列表支持双向索引,所以i可以为负数 >>> def list_get(L,i,v=None): if -len(L)<= i < len(L): return L[i] else: return v >>> list_get([1,2,3,4,5,6],3) 4 异常机制 >>> def list2_ge…
??二元操作符在对first??second求值时,大致会经历以下步骤: 1)对first进行求值: 2)如果结果非空,则该结果就是整个表达式的结果: 3)否则求second的值,其结果作为整个表达式的结果. 例如: DateTime birth; DateTime? death; public TimeSpan Age{ get{ return (death??DateTime.Now)-birth; } } Address contact = user.ContactAddress?? or…
?? 操作符叫做 null-coalescing operator,即 null 合并运算符.如果此运算符的左操作数不为 null,则此运算符将返回左操作数:否则返回右操作数. 在微软的官方 C# 文档中,此操作符被定义为不可重载.不过我们有方法可以间接实现这样的重载. 本文内容 运算符重载 编写 NullableString 的 ?? 重载 一些注意事项 运算符重载 你可以阅读 C# 中那些可以被重载的操作符,以及使用它们的那些丧心病狂的语法糖 了解 C# 中提供的所有可以重载的操作符.在此文…
强引用 用的最广,我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它.它就是强引用. 如果一个对象具有强引用,那么垃圾回收期绝不会回收它,当内存空间不足,java虚拟机宁愿抛出OutOfMemoryError错误,使程序终止异常,也不会随意回收具有强引用的对象来解决内存不足问题. 软引用 如果一个对象具有软引用,则内存空间足够时,jvm不会回收它,如果内存空间不足,则会回收这些对象的内存. 只要垃圾回收器没有回收它,该对象就可以被程序使用.软引用可以用来实现内存敏感的高速…
Nullable<Int32> x = null; Nullable<Int32> y = null; Nullable<Int32> z = null; Int32 res = x ?? y ?? z ?? ; 等价于: if (null != x) { res = x.Value; } else { if (null != y) { res = y.Value; } else { if (null != z) { res = z.Value; } else { re…
操作符: ?? 用法:C = A ?? B; 解释:if(A != null){ C=A;} else{C=B}     类似三元运算符 :? 例子: Int32? num1=null; Int32? num2=2; Int32 num3=num1 ?? num2 ?? 3; //2…
在.NET中,异常是指成员没有完成它的名称宣称可以完成的行动.在异常的机制中,异常和某件事情的发生频率无关. 异常处理四要素包括:一个表示异常详细信息的类类型:一个向调用者引发异常类实例的成员:调用者的一段调用异常成员的代码块:调用者的一段处理将要发生异常的代码块.异常类类型包括:基类:System.Exception:系统级异常:System.SystemException:应用程序级异常:System.ApplicationException. (一).在.NET中有如下的异常类: (1).…
一.异常处理的理解? 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常. 因此处理这种错误,就称为异常处理. 二.异常处理如何操作? C# 异常处理时建立在四个关键词之上的:try.catch.finally 和 throw. 1.try:一个 try 块标识了一个将被激活的特定的异常的代码块.后跟一个或多个 catch 块. 2.catch:程序通过异常处理程序捕获异常.catch 关键字表示异常的捕获. 3.finally:finally 块用于执行给定的语句,不管…
概念 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常 但并不是所有的错误都是异常 而处理这种错误,称为异常处理 异常处理实际是不断去发掘异常.修改异常,使程序更稳定 异常处理主要表现在四个方面: 程序开发前:尽可能的想到会发生的错误,标注怎么处理应对 程序开发中:尽量暴露程序的问题,解决这些可能的异常 系统发布后:尽可能的解决隐藏的或测试人员未测试到的程序问题 发生异常时:异常代码转化成了友好提示显示给用户 异常分类 编译错误 大小写混淆 数据类型与变量类型不符 使用…
在开发过程中,经常遇到各种各样的小问题,很多是由于基础不牢固,没有经常总结导致的.遇到重复的问题可能可根据以往经验处理,但是对问题本身引发的原因进行深入的了解.工作很多年,但是c#基础像一层冰一样,可能还停留在应届生的阶段. 这里写一些总结帖子,但不会持续写,有时间或者遇到问题时再写,时间比较紧,很多是摘抄网络上的. 目录(仅记录下): c#基础之异常处理 c#基础之IO操作 c#基础之对象 c#基础之特性 c#基础之异常处理 一.简介 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种…
System.Exception//所有异常的基类型 System.ApplicationException//发生非致命应用程序错误时引发的异常 System.SystemException//为System命名空间中的预定义异常定义基类 System.SystemException//异常根类 System.AccessViolationException//在试图读写受保护内存时引发的异常 System.ArgumentException//在向方法提供的其中一个参数无效时引发的异常 Sy…
 在.NET中,异常是指成员没有完成它的名称宣称可以完成的行动.在异常的机制中,异常和某件事情的发生频率无关. 异常处理四要素包括:一个表示异常详细信息的类类型:一个向调用者引发异常类实例的成员:调用者的一段调用异常成员的代码块:调用者的一段处理将要发生异常的代码块.异常类类型包括:基类:System.Exception:系统级异常:System.SystemException:应用程序级异常:System.ApplicationException. (一).在.NET中有如下的异常类: (1)…