C# 8中基本数据类型的可空值类型

来源:互联网 发布:北京联合大学知乎 编辑:程序博客网 时间:2024/05/14 08:46

        C# 8中基本数据类型除了 string (string是引用类型)外,int、long、float、double、decimal、char、bool (这7中都是值类型)都可以声明为可空值类型。且在方法中使用时,参数位置也没有可空值类型必须在非可空值类型后面的限制,可空值类型可以定义在方法参数列表的前中后任何位置。

        struct(结构) 类型是值类型,也可以声明为可空值类型。

        对于 string 类型,可以用 string.Empty 输出空值。另外,除了 string.Empty 外,string 类型也可直接赋值为 null。如下:

string str = null;  // 合法string str = string.Empty;  // 合法
        代码如下所示:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 可空类型{    class Program    {        static void Main(string[] args)        {            Student student1 = new Student();            student1.StudentInformation(12, "boy", 18, 180, 86.0F,                 90.0, 95.0M, 85.0F, "Steven", 'A', true, 168);            Console.WriteLine();            student1.StudentInformation(12, "boy", null, null, null,                 null, null, 85.0F, "Steven", null, null, 168);            Console.WriteLine();            student1.StudentInformation(12, string.Empty, null, null, null,                     null, null, 85.0F, string.Empty, null, null, 168);                // 对于 string 类型,可以用 string.Empty 输出空值            Console.WriteLine();            student1.StudentInformation(12, null, null, null, null,                null, null, 85.0F, null, null, null, 168);                // 把 赋值给 string 类型的 string.Empty                 // 换成 null 后可得到同样的输出        }    }    class Student    {        //public Student()        //{        // 默认构造器注释掉,依然可以运行,实际上程序会自己建一个隐藏的默认构造器        //}               public void StudentInformation(            int schoolAge,            string sex,            int? age,            long? height,            float? mathScore,            double? biologyScore,            decimal? geographyScore,            float artScore,            string name,            char? scoreGrade,            bool? passed,             int ID)        {            Console.WriteLine("Name:            {0}", name);            Console.WriteLine("ID:              {0}", ID);            Console.WriteLine("Sex:             {0}", sex);            Console.WriteLine("Age:             {0}", age);            Console.WriteLine("SchoolAge:       {0}", schoolAge);            Console.WriteLine("Height:          {0}", height);            Console.WriteLine("MathScore:       {0}", mathScore);            Console.WriteLine("ArtScore:        {0}", artScore);            Console.WriteLine("BiologyScore:    {0}", biologyScore);            Console.WriteLine("GeographyScore:  {0}", geographyScore);            Console.WriteLine("ScoreGrade:      {0}", scoreGrade);            Console.WriteLine("Passed:          {0}", passed);        }    }}

        运行后结果如下所示:


原创粉丝点击