zoukankan      html  css  js  c++  java
  • 第五节 19可空数据类型 简单

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    /*  可空数据类型
     *  C#中值类型(int, Guid, bool等)是不可以为空的,int i=null是错误的,因此int, bool等这些类型不能表示数据库中的"Null"
     *  因此C#提供了"可空类型"这种语法,只要在类型后加?就构成了可空的数据库类型,比如int?, bool?,这样int? i = null就可以了,解决数据库中int可以为null,而C#中int不能为null的问题
     *  
     * 判断可空类型是否为空,i==null或者i.HasValue; 得到可空变量的值,int i1 = (int)i.Value或者int i i1 = i.value;
     * 
     * 类型转换: 不可空类型赋值给可空类型无需要显示转换(一定成功),可空类型赋值给不可空类型则需要显示转换(不一定成功)
     * 
     * 
     * 
     * 
     * 
     * 
     */
    namespace _19可空数据类型
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                string s1 = null;
                //int i1 = null;
                int? i2 = 0;
                int? i3 = 3; //int?->可空的int,解决数据库和C#对于int是否可以为null的不同所设置的
    
                if (i3 == null)
                {
                    MessageBox.Show("i3为空");
                }
                else {
                    i3++;
                    int i4 = (int)i3; //这里对可为空的i3进行数据类型转换
                    MessageBox.Show("i3不为空,i3++="+i3);
                }
    
                //第二种判断是否为空的值
                if (i3.HasValue)
                {
                    int i4 = i3.Value;
                    MessageBox.Show("i3不为空,值为" + i4);
                }
                else {
                    MessageBox.Show("i3为空");
                }
                int i6 = 10; //定义一个int数据类型
                int? i5 = i6;  //可以给赋值给一个可空的int数据类型
    
                //但可空的int型,不能赋值给一个可空的int类,这只能做数据类型转换,
               
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                //这里直接用一个强类型的DataSet
                /*T_UserRow u = new T_UserRow();
                u.Id = 1;
                u.name = "xxdxxd";
                u.password = "xxdxxd";
                u.errortimes = 1;*/
            }
        }
    }
    

      

  • 相关阅读:
    一些常用的Unix命令
    Shortcut Blocks with Symbol to_proc 通过to_proc为代码块逻辑命名
    Using with_scope 使用with_scope
    Move Find into Model 将查询方法从控制器上移至模型
    Find Through Association 使用级联查询
    Dynamic find_by Methods 使用动态的find_by方法
    Caching with Instance Variables 缓存与实例变量
    深入浅出object-c
    IT大神进化史-第二章
    IT大神进化史-第一章
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2379786.html
Copyright © 2011-2022 走看看