zoukankan      html  css  js  c++  java
  • 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();
     
    运行结果:
  • 相关阅读:
    node-webkit 笔记
    CEF 相关资料
    输出重定向
    FindProcDLL::FindProc 和 KillProcDLL::KillProc,必须使用WPF x86编译出来的程序
    wpf xaml inlines
    Gradle 笔记
    Android手机的 storage
    SpringMVC 工作原理详解
    SpringMVC 面试题
    18、多线程 (线程安全、线程同步、等待唤醒机制、单例设计模式)
  • 原文地址:https://www.cnblogs.com/hjsstudio/p/8832521.html
Copyright © 2011-2022 走看看