复习专用,中一些常用的方法使用

2019-11-04 11:26 来源:未知

一、字符串

一.string.Empty

  •   由此string定义三个字符串,也许通过String类来创设对象。

    •   通过new String() 创立有瞬间三种构造函数(从元数据卡塔 尔(阿拉伯语:قطر‎,以此顺序创造string;
    • 图片 1图片 2

      //
              // 摘要:
              //     将 System.String 类的新实例初始化为由 Unicode 字符数组指示的值。
              //
              // 参数:
              //   value:
              //     Unicode 字符的数组。
              [SecuritySafeCritical]
              public String(char[] value);
              //
              // 摘要:
              //     将 System.String 类的新实例初始化为由指向 8 位有符号整数数组的指针指示的值。
              //
              // 参数:
              //   value:
              //     一个指针,指向以 null 结尾的 8 位带符号整数数组。
              //
              // 异常:
              //   T:System.ArgumentNullException:
              //     value 为 null。
              //
              //   T:System.ArgumentException:
              //     如果 value 是用 ANSI 编码的,则不能使用 value 初始化 System.String 的新实例。
              //
              //   T:System.ArgumentOutOfRangeException:
              //     要初始化的新字符串的长度过大,无法分配,该长度由 value 的 null 终止字符决定。
              //
              //   T:System.AccessViolationException:
              //     value 指定的地址无效。
              [CLSCompliant(false)]
              [SecurityCritical]
              public String(sbyte* value);
              //
              // 摘要:
              //     将 System.String 类的新实例初始化为由指向 Unicode 字符数组的指定指针指示的值。
              //
              // 参数:
              //   value:
              //     指向以 null 终止的 Unicode 字符数组的指针。
              //
              // 异常:
              //   T:System.ArgumentOutOfRangeException:
              //     当前进程并不是对所有编址字符都有读取权限。
              //
              //   T:System.ArgumentException:
              //     value 指定了包含无效 Unicode 字符的数组,或者 value 指定了小于 64000 的地址。
              [CLSCompliant(false)]
              [SecurityCritical]
              public String(char* value);
              //
              // 摘要:
              //     将 System.String 类的新实例初始化为由重复指定次数的指定 Unicode 字符指示的值。
              //
              // 参数:
              //   c:
              //     一个 Unicode 字符。
              //
              //   count:
              //     c 出现的次数。
              //
              // 异常:
              //   T:System.ArgumentOutOfRangeException:
              //     count 小于零。
              [SecuritySafeCritical]
              public String(char c, int count);
              //
              // 摘要:
              //     将 System.String 类的新实例初始化为由 Unicode 字符数组、该数组内的起始字符位置和一个长度指示的值。
              //
              // 参数:
              //   value:
              //     Unicode 字符的数组。
              //
              //   startIndex:
              //     value 内的起始位置。
              //
              //   length:
              //     要使用的 value 内的字符数。
              //
              // 异常:
              //   T:System.ArgumentNullException:
              //     value 为 null。
              //
              //   T:System.ArgumentOutOfRangeException:
              //     startIndex 或 length 小于零。- 或 -startIndex 和 length 之和大于 value 中的元素数。
              [SecuritySafeCritical]
              public String(char[] value, int startIndex, int length);
              //
              // 摘要:
              //     将 System.String 类的新实例初始化为由指向 8 位有符号整数数组的指定指针、该数组内的起始位置和一个长度指示的值。
              //
              // 参数:
              //   value:
              //     指向 8 位带符号整数数组的指针。
              //
              //   startIndex:
              //     value 内的起始位置。
              //
              //   length:
              //     要使用的 value 内的字符数。
              //
              // 异常:
              //   T:System.ArgumentNullException:
              //     value 为 null。
              //
              //   T:System.ArgumentOutOfRangeException:
              //     startIndex 或 length 小于零。- 或 -由 value + startIndex 指定的地址相对于当前平台来说太大;即,地址计算溢出。-
              //     或 -要初始化的新字符串的长度太大,无法分配。
              //
              //   T:System.ArgumentException:
              //     由 value + startIndex 指定的地址小于 64K。- 或 -如果 value 是用 ANSI 编码的,则不能使用 value 初始化 System.String
              //     的新实例。
              //
              //   T:System.AccessViolationException:
              //     value、startIndex 和 length 共同指定的地址无效。
              [CLSCompliant(false)]
              [SecurityCritical]
              public String(sbyte* value, int startIndex, int length);
              //
              // 摘要:
              //     将 System.String 类的新实例初始化为由指向 Unicode 字符数组的指定指针、该数组内的起始字符位置和一个长度指示的值。
              //
              // 参数:
              //   value:
              //     指向 Unicode 字符数组的指针。
              //
              //   startIndex:
              //     value 内的起始位置。
              //
              //   length:
              //     要使用的 value 内的字符数。
              //
              // 异常:
              //   T:System.ArgumentOutOfRangeException:
              //     startIndex 或 length 小于零,value + startIndex 引起指针溢出,或者当前进程并不是对所有编址字符都有读取权限。
              //
              //   T:System.ArgumentException:
              //     value 指定了包含无效 Unicode 字符的数组,或者 value + startIndex 指定了小于 64000 的地址。
              [CLSCompliant(false)]
              [SecurityCritical]
              public String(char* value, int startIndex, int length);
              //
              // 摘要:
              //     将 System.String 类的新实例初始化为由指向 8 位有符号整数数组的指定指针、该数组内的起始位置、长度以及 System.Text.Encoding
              //     对象指示的值。
              //
              // 参数:
              //   value:
              //     指向 8 位带符号整数数组的指针。
              //
              //   startIndex:
              //     value 内的起始位置。
              //
              //   length:
              //     要使用的 value 内的字符数。
              //
              //   enc:
              //     一个对象,用于指定如何对 value 所引用的数组进行编码。如果 enc 为 null,则假定以 ANSI 编码。
              //
              // 异常:
              //   T:System.ArgumentNullException:
              //     value 为 null。
              //
              //   T:System.ArgumentOutOfRangeException:
              //     startIndex 或 length 小于零。- 或 -由 value + startIndex 指定的地址相对于当前平台来说太大;即,地址计算溢出。-
              //     或 -要初始化的新字符串的长度太大,无法分配。
              //
              //   T:System.ArgumentException:
              //     由 value + startIndex 指定的地址小于 64K。- 或 -未能使用 value 初始化 System.String 的新实例,假定 value
              //     按照 enc 的指定进行编码。
              //
              //   T:System.AccessViolationException:
              //     value、startIndex 和 length 共同指定的地址无效。
              [CLSCompliant(false)]
              [SecurityCritical]
              public String(sbyte* value, int startIndex, int length, Encoding enc);
      

      View Code

    • 图片 3图片 4

      char []cstr = { 'a','b','c','d','e'};
                  char cstr1 = 'a';
                  sbyte se = 113;
      
                  String a = new String(cstr);
                  //
      
                  String b = new String(&cstr1);
      
                  String c = new String(&se);
      
                  String d = new String('d',2);
      
                  String e = new String(cstr,2,3);
      
                  String f = new String(&se,0,1);
                  Console.WriteLine((int)Convert.ToChar(f)+"n");//113
                  String g = new String(&se,0,1,Encoding.UTF8);
                  Console.WriteLine("a:{0}nb:{1}nc:{2}nd:{3}ne:{4}nf:{5}ng:{6}",a,b,c,d,e,f,g);
      

      View Code

  •   string是C#基元类型(primitive),string不问可见正是编译器直接扶植的数据类型。运算符(== 和 !=)是为了相比较 string 对象的值, 实际不是相比较引用

    • string a = "1234";
                  string b = "123";
                  b += "4";
                  Console.WriteLine(a == b);//比较值
                  Console.WriteLine((object)a == (object)b);//比较引用()
      
       
  •   string连接操作 (+=卡塔 尔(阿拉伯语:قطر‎

    •   短处很醒目, 操作频仍的话特别浪费内部存款和储蓄器空间的
    •   使用StringBuilder类对象方法append取代+=, 品质还应该有所升高
  •   null," "和string.Empty的区别
    •   null表示不援用任何变量的空引用的值,null是援引变量的暗中认可值, 值类型变量不可能使用
    •   ""表示分配一个内部存款和储蓄器为空的寄放空间。
    •   string.Empty表示空字符串,况且不分配内部存款和储蓄器空间。
  •   决断字符串为空 的俩种办法
    •   x.length==0 // 不只怕看清为null的字符串
    •   string.IsNullOrEmpty(x)   

string.Empty就也就是 "" ,平时用来字符串的起先化 ,

譬喻: string a; Console.WriteLine(a);//这里会报错,因为未有初阶化a

而下边不会报错: string a=string.Empty; Console.WriteLine(a);

抑或用于比较: if(a=="") if(a==string.Empty) 下边两句是如出大器晚成辙的功力。

 

二.String.IsNullOrEmpty 方法

String.IsNullOrEmpty(value)

指令钦命的字符串是 null 如故 Empty 字符串。 能同一时间测量试验 String 是还是不是为 null 或其值是不是为 Empty 等价于  result = (value) == null || (value) == String.Empty;

参数 value :类型:System.String ,要测验的字符串。

归来值 类型:System.Boolean, 要是 value 参数为 null 或空字符串 (""),则赶回 true;不然重回 false。

 

三.Nullable可空类型

Nullable<Int32>,读作“可空的 Int32”,能够被赋值为 -2147483648 到 2147483647 之间的大肆值,也足以被赋值为 null 值。

Nullable<bool> 能够被赋值为 true 或 false,或 null。在拍卖数据库和其余包罗可能未赋值的因素的数据类型时,将 null 赋值给数值类型或布尔型的职能特别有用。

举例,数据库中的布尔型字段能够储存值 true 或 false,只怕,该字段也能够未定义。 

可空类型具备以下特点:  ·可空类型表示可被赋值为 null 值的值类型变量。不大概创设基于引用类型的可空类型。(援引类型已帮助 null 值。)。 

·语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型。那三种样式得以沟通。  ·

为可空类型赋值与为日常值类型赋值的格局生机勃勃致,如 int? x = 10; 或 double? d = 4.108;。 

·借使功底项指标值为 null,请使用 System.Nullable.GetValueOrDefault 属性再次来到该基本功项目所赋的值或默许值,

例如说 int j = x.GetValueOrDefault();  ·请使用 HasValue 和 Value 只读属性测验是或不是为空和查究值,比如 if(x.HasValue) j = x.Value;   假若此变量包罗值,则 HasValue 属性重临True;或许,假若此变量的值为空,则赶回 False。   假使已赋值,则 Value 属性再次回到该值,不然将抓住 System.InvalidOperationException。 

  可空类型变量的默许值将 HasValue 设置为 false。未定义 Value。  ·使用 ?? 运算符分配暗许值,当前值为空的可空类型被赋值给非空类型时将使用该私下认可值,

如 int? x = null; int y = x ?? -1;。 

·不允许采纳嵌套的可空类型。将不编写翻译下边风姿罗曼蒂克行:Nullable<Nullable<int>> n; 

程序代码

class NullableExample 

{  

   static void Main()

    {  

     int? num = null;  

    if (num.HasValue == true) 

     {  

      System.Console.WriteLine("num = " + num.Value); 

     } 

     else 

    {  

      System.Console.WriteLine("num = Null"); 

     }  

    // 赋值为可空类型的暗中同意值 int y = num.GetValueOrDefault();  

    // 倘若num.HasValue重临false,则num.Value将会抓住 InvalidOperationException非常 

    try

    {

        y = num.Value;

     }  

     catch (System.InvalidOperationException e) 

    {  

      System.Console.WriteLine(e.Message); 

    } 

   } 

}  

以上将显得输出:  num = Null   Nullable object must have a value.

 

基类型(基本类型)

Nullable 类型用?构造,如:int?是整型int的Nullable 类型,一个Nullable 类型的基类型必需是值类型,

如int是值类型,它的Nullable 便是int? 如: int i=0; int? j=null; 基类型不可能是引用类型,如: string s="abc"; string? s=null;//错误

 

可空的岁月类型调换为string时索要专一:

Nullable<System.DateTime> SendTime;

string timeStr=SendTime.HasValue ? Send提姆e.Value.ToString("yyyy-MM-dd hh:mm:ss") : "当前变量为null";

HasValue : 获取贰个值,提醒当前的System.Nullable<T>对象是还是不是有值。再次来到True和False.

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于编程教学,转载请注明出处:复习专用,中一些常用的方法使用