- 浏览: 3047942 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
失败了,这个运算符居然一直没注意到。虽说第一次看到就直观的知道它的语义,但……
读书不仔细真是罪过 T T
??运算符:双目运算符,左操作数可以是一个Nullable<T>类型,右操作数是其对应的非nullable类型的值;对引用类型也有效。主要用于Nullable<T>类型对相应的非nullable类型变量赋值;这样的赋值如果不使用??运算符则会带来编译时错误。
例子:
Nullable<T>类型是个值类型,这点千万要注意。因为是值类型,所以永远不会为null;即便对一个Nullable<T>类型的变量赋值null,也不过是得到了一个包装着null的值类型而已。
读书不仔细真是罪过 T T
??运算符:双目运算符,左操作数可以是一个Nullable<T>类型,右操作数是其对应的非nullable类型的值;对引用类型也有效。主要用于Nullable<T>类型对相应的非nullable类型变量赋值;这样的赋值如果不使用??运算符则会带来编译时错误。
例子:
int? i; int j = i ?? -1; string s = null; string s2 = s ?? "Unspecified";
Nullable<T>类型是个值类型,这点千万要注意。因为是值类型,所以永远不会为null;即便对一个Nullable<T>类型的变量赋值null,也不过是得到了一个包装着null的值类型而已。
发表评论
-
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22390(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对象的重量
2011-08-21 17:15 0http://domino.research.ibm.com/ ... -
GetCustomAttribute()每次都返回新Attribute实例
2009-11-10 10:30 0Jeffrey Zhao: 一次失败的尝试(上):原来GetC ... -
委托与方法和隐藏参数
2009-09-07 15:32 3304之前正好发了些帖子是关于CLR里的委托的,然后看到老赵说事件也 ... -
要让CLR挂掉的话(第二弹)……
2009-09-04 03:26 12870(Disclaimer:如果需要转 ... -
要让CLR挂掉的话……
2009-09-02 16:53 4776(Disclaimer:如果需要转载请先与我联系。 作者:Re ... -
趣味编程:函数式链表的快速排序
2009-08-31 08:53 3444(恢复自2009-08-28的备份 ... -
事件处理器导致内存泄漏
2009-08-25 15:03 0Memory leak via event handlers ... -
C# 3.0的类型推导
2009-08-23 12:24 0Howard Dierking: Lambda, Lambda ... -
把lock的意思给弄混了 T T
2009-08-20 17:49 2597悲剧啊……前几天有个同学不停问我Java里的同步问题,今天写C ... -
把IEnumerable<T>和IObservable<T>粘起来?
2009-07-23 03:02 0Channel 9: Expert to Expert: Br ... -
Scott Peterson: Variance, Thy Name is Ambiguity
2009-07-01 23:49 1635原文作者:Scott Peterson 原文地址:http:/ ... -
void无法协变
2009-06-30 11:17 0Eric Lippert The void is invari ... -
同一个表达式算出来的浮点数结果会不相等?
2009-05-30 03:27 0浮点数有很多可把玩的地方。例如下面这段C程序: #includ ... -
C#开始默认引用Microsoft.CSharp.dll
2009-05-20 16:14 0记得VB6的运行时么?留意到VB.NET的程序都需要额外的VB ... -
反射与显式实现接口的方法
2009-05-20 11:43 4056在前一帖里,我用到了下面三处Expression.Call() ... -
看到一个关于ref参数与多态的问题,记一下
2009-05-18 10:48 1940刚才读到Alan McGovern的一帖,问为什么形式参数是r ... -
C#的+=运算符两例
2009-05-06 18:18 2031刚偶尔看到了justjavac写的java解惑 - 半斤八两( ...
相关推荐
):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如:string str=null;是正确的。int i=null;编译器将报错。为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符?来表示...
当我们声明一个可空类型时,C#编译器实际上会将其转换为`System.Nullable<T>`类型,其中`T`是我们原始的值类型。 ##### 底层实现 可空类型实际上是通过`System.Nullable<T>`类实现的。这个类内部包含了一个`T`类型...
这个运算符在处理可空类型(nullable types)和可能返回null的对象引用时特别有用,能够帮助避免因null引用异常而引发的错误。 当`??`运算符的左操作数(即在其左侧的表达式)非null时,整个表达式的值就是左操作数...
C# 可空类型(Nullable)是一种特殊的数据类型,可以表示其基础值类型正常范围内的值,再加上一个 null 值。这种类型非常有用,特别是在处理数据库和其他包含可能未赋值的元素的数据类型时。 C# 可空类型(Nullable...
在理解这个运算符之前,我们首先要明白C#中的可空类型(nullable types)和引用类型。 在C#中,基本类型如int、double等是不可空的,而引用类型如类实例是可以赋值为null的。对于那些设计为可能为null的值类型,...
首先,C#中的DateTime类型是一个结构,而不是引用类型,这意味着它没有默认的“null”状态。当你声明一个DateTime变量但未初始化时,它的值会默认设置为DateTime.MinValue。DateTime.MinValue表示公元1年1月1日的00:...
在C#编程语言中,可空类型(Nullable Types)是一个重要的特性,它允许我们为原本非可空的值类型(如int、double等)赋予null值。这在处理数据库、XML或其他可能返回null的场景中非常有用。本教程将通过几个实例深入...
C# 类型基础是编程语言C#中的核心概念,它涉及到变量、数据类型、值与引用类型、装箱与拆箱、以及类型转换等多个方面。理解这些基础将有助于你更好地编写高效、可靠的C#代码。 首先,我们来讨论C#中的数据类型。C#...
本文将通过一个具体的示例来详细介绍`Nullable`类型的使用及其转换方法。 #### Nullable基本概念 在C#中,所有的值类型(如int、bool等)默认情况下是不能赋值为null的。然而,在某些场景下,我们需要能够表示一个...
C# 8.0引入了默认接口实现和 nullable 引用类型等。 十、C#与.NET Framework / .NET Core C#是.NET平台的核心编程语言,可用于构建跨平台的应用程序。.NET Framework提供了丰富的类库,而.NET Core是一个轻量级、高...
在C#编程语言中,可空类型(System.Nullable)是一个重要的特性,它允许开发者为原本不可为空的值类型(如int、double等)赋予null值。这个特性在处理不确定的数据或者在数据库交互(如ADO.NET)时非常有用。在本文...
在C#编程语言中,可空类型是一个非常重要的特性,特别是在处理可能包含null值的数据时。自C# 2.0版本开始,引入了可空类型以解决值类型不能为null的问题,从而更好地与数据库或其他允许null值的系统集成。 **一、可...
`声明了一个可空整型变量,这实际上是在声明`System.Nullable<int>`类型。同理,`DateTime?`表示可空的日期时间类型。这种机制允许我们为原本不能赋值为null的类型提供一个“无值”状态。在使用可空类型时,需要注意...
在C#编程语言中,可空类型(Nullable Types)是一个重要的特性,它允许开发者为原本不可为空的值类型(如int、bool等)赋予null值。这种能力在处理数据库数据或其他可能包含未定义值的场景时尤其有用。下面将详细...
在.NET框架中,C#是一种常用的编程语言,它在处理数据类型时提供了丰富的特性。本资源包主要关注的是“可空结构体”在方法内部赋值的问题,这可能对开发者在编写C#代码时造成困扰。我们将深入探讨这个问题,以及如何...
5. **理解`null`与`Nullable<T>`**:C#中的`null`用于引用类型,而`Nullable<T>`可以用于值类型,允许表示“无值”。 6. **使用扩展方法增强类型功能**:扩展方法允许你在不修改原有类的情况下向其添加新方法,提供...
8. **异构集合解包**:C# 7.0还支持异构集合的解包,方便一次性处理多个类型不同的元素。例如: ```csharp (int a, string b, double c) = (1, "two", 3.0); ``` 9. **空条件运算符**:`?.`运算符可以安全地访问...