C# defualt关键字默认值用法

原文:C# defualt关键字默认值用法

默认值表达式生成类型的默认值。 默认值表达式在泛型类和泛型方法中非常有用。 使用泛型类和泛型方法时出现的一个问题是,如何在无法提前知道以下内容的情况下将默认值赋值给参数化类型 T

  • T 是引用类型还是值类型。
  • 如果 T 是值类型,它是数值还是用户定义的结构。

已知参数化类型 T 的变量 t,仅当 T 为引用类型时,语句 t = null 才有效。 赋值 t = 0 仅对数值类型有效,对结构无效。 解决方案是使用默认值表达式,该表达式对引用类型(类类型和接口类型)返回 null,对数值类型返回零。 对于用户定义的结构,返回初始化为零位模式的结构,该结构根据成员是值还是引用类型,为每个成员生成 0 或 null。 对于可为 NULL 的值类型,default 返回像任何结构一样初始化的System.Nullable<T>

default(T) 表达式不限于泛型类和泛型方法。 默认值表达式可用于任何托管类型

以上内容来自MSDN。

示例代码:

int iValue = default(int);
float fValue = default(float);
decimal dValue = default(decimal);
Console.Write("值类型测试:");
Console.WriteLine("{0},{1},{2}", iValue, fValue, dValue);

string strValue = default(string);
DateTime? dt = default(DateTime?);
User user = default(User);
Console.Write("引用类型测试:");
Console.WriteLine("{0},{1},{2}", (null == strValue), (null == user), (null == dt));
Console.WriteLine();

运行结果:

原文地址:https://www.cnblogs.com/lonelyxmas/p/8855228.html

时间: 2024-10-17 13:09:03

C# defualt关键字默认值用法的相关文章

python 在调用时计算默认值

大家都知道python的默认值是在函数定义时计算出来的, 也就是说默认值只会计算一次, 之后函数调用时, 如果参数没有给出,同一个值会赋值给变量, 这会导致, 如果我们想要一个list默认值, 新手通常这么写: def foo(a=[]): a.append(3) print a 其实是错误的,两次调用会这样的结果: [3] [3, 3] 其实应该这么写 def baz(a=None): a = a or [] a.append(3) print a 两次调用输出以下结果: [3] [3] 这样

CSS initial 关键字,用于设置 CSS 属性为它的默认值

CSS initial 关键字 实例 设置 <div> 元素内的文本颜色为红色,但是为 <h1> 元素保持最初的颜色: div {color: red; }h1 {color: initial; } 浏览器支持 除了 Internet Explorer,其他的主流浏览器都支持 initial 关键字. Opera 15 之前的版本不支持 initial 关键字. 定义和用法 initial 关键字用于设置 CSS 属性为它的默认值. initial 关键字可用于任何 HTML 元素

SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.io.filefilter.FalseFileFilter; import org.slf4j.Logger; import org.s

【Python学习】函数参数传递方法四种(位置,关键字,默认值,包裹位置,包裹关键字传递)

1. 位置传递: #--coding:utf-8-- def send(name,address): return 'package is sent to %s, located in %s' %(name, address) print(send('winnie','shanghai')) 2. 关键字传递 def run(name,length, date): return '%s ran %s on %s' %(name,length,date) #关键字传递时,可以无视参数顺序,名字对了

Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称

手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数据,经过分析一个简单的列表接口每一行数据返回了16个字段,但是手机APP端只用到了其中7个字段,剩余9个字段的数据全部都是多余的,如果接口返回数据为40K大小,也就是说大约20K的数据为无效数据,3G网络下20K下载差不多需要1s,不返回无效数据至少可以节约1s的时间,大大提高用户体验.本篇将为大家

sql的基本用法-------修改字段默认值和属性

修改表中已有的字段属性 ALTER TABLE 表名 ALTER COLUMN 字段名 varchar(500) --sqlserver建表表时设置字段的默认值 create table 表(id int,name varchar(10) default '张三',age int) --添加字段时设置字段的默认值 alter table 表 add sex char(2) default '男' --为表中现有的字段设置默认值 alter table 表 add constraint DF_ag

38 py改变函数参数的值关键字参数和参数默认值函数中可变参数将序列中的元素值作为函数对应的参数值传

第五课:改变函数参数的值 一个python函数可以有任意多个参数,在一个函数的外部来定义变量,然后把变量作为参数传入到函数内,并且在函数的内部来修改函数的参数值,函数结束之后,这些变量的值在如何变化呢? 给函数传递值有2种:1种是值传递,1种是引用传递 # 改变函数参数的值 # 值传递(数值.字符串.布尔 这些都是值传递) 在函数的内部修改变量值,不改变原参数定义的参数值,解释为: 这个在函数中不会改变原来定义(函数外部)的值 这是因为函数里面会有一个占的概念,外边的变量的值会复制给 占 里面,

Struts 之 通配符 路径匹配 常量用法 配置默认值

Struts 框架学习 Action的开发的几种方式 方式1 : 继承ActionSupport     如果使用Struts校验功能,必须继承此类 方式2 : 实现Action接口 方式3 :不继承任何类,不实现任何接口 1.通配符: 在Struts中配置信息,可以用*与{1} 可以优化配置 public class UserAction { private String userName; public void setUserName(String userName) { this.use

关键字enum的用法

 1.为什么要用enum 写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等. 更常见的,打开一个文件可能有三种状态:input, output和append. 典型做法是,对应定义3个常数,即: const int input = 1; const int output = 2; const int append = 3; 然后,调用以下函数: bool open_file(stri