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

        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);
        }
    }
}

        运行后结果如下所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值