日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
.NET數(shù)據(jù)類型匯總

.NET數(shù)據(jù)類型之字符串(String)

成都創(chuàng)新互聯(lián)公司于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元沅陵做網(wǎng)站,已為上家服務(wù),為沅陵各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

  • 字符串

表示文本,即一系列 Unicode 字符。字符串是 Unicode 字符的有序集合,用于表示文本。 String 對(duì)象是 System.Char 對(duì)象的有序集合,用于表示字符串。 String 對(duì)象的值是該有序集合的內(nèi)容,并且該值是不可變的(即,為只讀)。String 對(duì)象的***大小內(nèi)存中的為 2 GB 或大約 10 億個(gè)字符。

  • 關(guān)鍵字

string

  • 值范圍

一組字符

  • 解析數(shù)值
 
 
  1. int number = Convert .ToInt32(strNumber);
  • 格式化
    • 保留2位小數(shù)
    •     
          
      1. bc.FRetailPrice = String.Format("{0:N2}", Convert.ToDecimal(Math.Round(double.Parse(dgvBarcode.Rows[i].Cells["FRetailPrice"].Value.ToString()),2))).ToString();
  • 常用方法
    • Trim:去除字符串頭尾兩端的指定字符
    • Concat:字符串拼接
  • 轉(zhuǎn)義字符
    • \' 單引號(hào)
    • \" 雙引號(hào)
    • \\ 反斜杠
    • \0 空
    • \a 警告
    • \b 退格
    • \f 換頁(yè)
    • \n 換行
    • \r 回車
    • \t 水平制表符
    • \v 垂直制表符
  • 逐字字符串

字符串加@前綴

  • 比較
    • 比較空值
      • string.IsNullOrEmpty(str1)
      • s == string.Empty
      • s.Length == 0
      • s == ""
    • 比較相等性

使用==和!=操作符進(jìn)行比較時(shí),引用類型比較的是內(nèi)存中的對(duì)象,但string的相等性操作符被重新定義了,比較的是字符串的值。

  • 不可變性

string一旦初始化后不能改變,進(jìn)行修改后得到的是新的string對(duì)象,因此string的濫用是極其的低效。

  • StringBuilder

使用StringBuilder對(duì)字符串進(jìn)行修改,修改的是本對(duì)象而非產(chǎn)生新對(duì)象。

#p#

.NET 數(shù)據(jù)類型之類(Class)

類是 C# 中功能最為強(qiáng)大的數(shù)據(jù)類型。像結(jié)構(gòu)一樣,類也定義了數(shù)據(jù)類型的數(shù)據(jù)和行為。然后,程序員可以創(chuàng)建作為此類的實(shí)例的對(duì)象。與結(jié)構(gòu)不同,類支持繼承,而繼承是面向?qū)ο缶幊痰幕A(chǔ)部分。

  • 構(gòu)造函數(shù)

構(gòu)造函數(shù)是在創(chuàng)建給定類型的對(duì)象時(shí)執(zhí)行的類方法,是在運(yùn)行時(shí)調(diào)用的而非編譯時(shí),包括實(shí)例構(gòu)造函數(shù)和靜態(tài)構(gòu)造函數(shù)。構(gòu)造函數(shù)與類名相同,且不能有返回值。

  • 構(gòu)造函數(shù)鏈

使用this關(guān)鍵字進(jìn)行串聯(lián)構(gòu)造函數(shù)調(diào)用,可以使用可選參數(shù)替代構(gòu)造函數(shù)鏈,但是可選參數(shù)的語法只能在.NET4環(huán)境下運(yùn)行。

  • 靜態(tài)構(gòu)造函數(shù)
  • 析構(gòu)函數(shù)(終結(jié)器)

析構(gòu)函數(shù)用于析構(gòu)類的實(shí)例,重新對(duì)象的Finalize()方法。 不能在結(jié)構(gòu)中定義析構(gòu)函數(shù)。 只能對(duì)類使用析構(gòu)函數(shù)。一個(gè)類只能有一個(gè)析構(gòu)函數(shù)。無法繼承或重載析構(gòu)函數(shù)。無法調(diào)用析構(gòu)函數(shù)。 它們是被自動(dòng)調(diào)用的。析構(gòu)函數(shù)既沒有修飾符,也沒有參數(shù),是隱式保護(hù)的。

  • 關(guān)鍵字
    • new:創(chuàng)建新對(duì)象
    • this:實(shí)例對(duì)象
    • base:基類對(duì)象
    • static:靜態(tài)
  • 默認(rèn)訪問修飾符
  • 類:隱式內(nèi)部
  • 默認(rèn)構(gòu)造函數(shù):隱式私有
  • 對(duì)象

類的實(shí)例化,使用new關(guān)鍵字進(jìn)行實(shí)例化

  • 對(duì)象初始化器

對(duì)象初始化器只用少量的代碼就可以創(chuàng)建對(duì)象并設(shè)置一些屬性和公共字段,對(duì)象初始化時(shí)使用{},內(nèi)部使用逗號(hào)分隔的指定值的列表,初始化列表中的每個(gè)成員都映射為正在初始化的對(duì)象中的公共字段或公共屬性。

  • 代碼示例
 
 
  1. Point p = new Point{X=1,Y=2};
  • Object

object 類型在 .NET Framework 中是 Object 的別名。 在 C# 的統(tǒng)一類型系統(tǒng)中,所有類型(預(yù)定義類型、用戶定義類型、引用類型和值類型)都是直接或間接從 Object 繼承的。 可以將任何類型的值賦給 object 類型的變量。

  • 裝箱

將值類型的變量轉(zhuǎn)換為對(duì)象的過程稱為“裝箱”。

  • 拆箱

 將對(duì)象類型的變量轉(zhuǎn)換為值類型的過程稱為“拆箱”。

#p#

.NET 數(shù)據(jù)類型之指針類型(type*)

  • 指針類型

在不安全的上下文中,類型可以是指針類型以及值類型或引用類型。指針類型不繼承 object,并且指針類型與 object 之間不存在轉(zhuǎn)換。此外,裝箱和取消裝箱不支持指針。但是,允許在不同指針類型之間以及指針類型與整型之間進(jìn)行轉(zhuǎn)換。當(dāng)在同一個(gè)聲明中聲明多個(gè)指針時(shí),* 僅與基礎(chǔ)類型一起使用,而不是作為每個(gè)指針名稱的前綴。 指針不能指向引用或包含引用的結(jié)構(gòu),因?yàn)榧词褂兄羔樦赶驅(qū)ο笠茫搶?duì)象引用也可能會(huì)被執(zhí)行垃圾回收。GC 并不注意是否有任何類型的指針指向?qū)ο蟆?/p>

  • 語法
  •    
      
    1. type* identifier;void* identifier; 
    2. int* p1, p2, p3; 
    3. int number;int* p = &number;
    4. char* charPointer = stackalloc char[123];for (int i = 65; i < 123; i++){charPointer[i] = (char)i;}
  • 指針類型聲明
示例 說明

int* p

p 是指向整數(shù)的指針

int** p

p 是指向整數(shù)的指針的指針

int*[] p

p 是指向整數(shù)的指針的一維數(shù)組

char* p

p 是指向字符的指針

void* p

p 是指向未知類型的指針

  • 指針相關(guān)的運(yùn)算符和語句
運(yùn)算符/語句 用途

*

執(zhí)行指針間接尋址。

->

通過指針訪問結(jié)構(gòu)的成員。

[]

對(duì)指針建立索引。

&

獲取變量的地址。

++ 和 --

遞增或遞減指針。

加、減

執(zhí)行指針?biāo)惴ā?/p>

==、!=、<、>、<= 和 >=

比較指針。

stackalloc

在堆棧上分配內(nèi)存。

fixed 語句

臨時(shí)固定變量以便可以找到其地址。

  • 指針轉(zhuǎn)換
    • 隱式指針轉(zhuǎn)換

任何指針類型

void*

null

任何指針類型

    • 顯示指針轉(zhuǎn)換

任何指針類型

所有其他指針類型

sbyte、byte、short、ushort、int、uint、long 或 ulong

任何指針類型

任何指針類型

sbyte、byte、short、ushort、int、uint、long 或 ulong

  • 代碼示例
    • 指針訪問成員
    •         
          
      1. truct CoOrds{
      2.     public int x;
      3.     public int y;
      4. }
      5. class AccessMembers
      6. {
      7.     static void Main() 
      8.     {
      9.         CoOrds home;
      10.         unsafe 
      11.         {
      12.             CoOrds* p = &home;
      13.             p->x = 25;
      14.             p->y = 12;
      15.             System.Console.WriteLine("The coordinates are: x={0}, y={1}", p->x, p->y );
      16.         }
      17.     }
      18. }
    • 指針訪問數(shù)組元素
    •         
          
      1. class Pointers
      2. {
      3.     unsafe static void Main() 
      4.     {
      5.         char* charPointer = stackalloc char[123];
      6.         for (int i = 65; i < 123; i++)
      7.         {
      8.             charPointer[i] = (char)i;
      9.         }
      10.         System.Console.WriteLine("Uppercase letters:");
      11.         for (int i = 65; i < 91; i++)
      12.         {
      13.             System.Console.Write(charPointer[i]);
      14.         }
      15.         System.Console.WriteLine();
      16.         System.Console.WriteLine("Lowercase letters:");
      17.         for (int i = 97; i < 123; i++)
      18.         {
      19.             System.Console.Write(charPointer[i]);
      20.         }
      21.     }
      22. }
    • 指針復(fù)制字節(jié)數(shù)組
    •         
          
      1. class TestCopy
      2. {
      3.     static unsafe void Copy(byte[] src, int srcIndex, byte[] dst, int dstIndex, int count)
      4.     {
      5.         if (src == null || srcIndex < 0 ||
      6.             dst == null || dstIndex < 0 || count < 0)
      7.         {
      8.             throw new System.ArgumentException();
      9.         }
      10.         int srcsrcLen = src.Length;
      11.         int dstdstLen = dst.Length;
      12.         if (srcLen - srcIndex < count || dstLen - dstIndex < count)
      13.         {
      14.             throw new System.ArgumentException();
      15.         }
      16.         fixed (byte* pSrc = src, pDst = dst)
      17.         {
      18.             byte* ps = pSrc;
      19.             byte* pd = pDst;
      20.             for (int i = 0 ; i < count / 4 ; i++)
      21.             {
      22.                 *((int*)pd) = *((int*)ps);
      23.                 pd += 4;
      24.                 ps += 4;
      25.             }
      26.             for (int i = 0; i < count % 4 ; i++)
      27.             {
      28.                 *pd = *ps;
      29.                 pd++;
      30.                 ps++;
      31.             }
      32.         }
      33.     }
      34.     static void Main()
      35.     {
      36.         byte[] a = new byte[100];
      37.         byte[] b = new byte[100];
      38.         for (int i = 0; i < 100; ++i)
      39.         {
      40.             a[i] = (byte)i;
      41.         }
      42.         Copy(a, 0, b, 0, 100);
      43.         System.Console.WriteLine("The first 10 elements are:");
      44.         for (int i = 0; i < 10; ++i) 
      45.         {
      46.             System.Console.Write(b[i] + " ");
      47.         }
      48.         System.Console.WriteLine("\n");
      49.     }
      50. }

#p#

.NET 數(shù)據(jù)類型之動(dòng)態(tài)類型(Dynamic)

  • Dynamic

     在通過 dynamic 類型實(shí)現(xiàn)的操作中,該類型的作用是繞過編譯時(shí)類型檢查, 改為在運(yùn)行時(shí)解析這些操作。 dynamic 類型簡(jiǎn)化了對(duì) COM API(例如 Office Automation API)、動(dòng)態(tài) API(例如 IronPython 庫(kù))和 HTML 文檔對(duì)象模型 (DOM) 的訪問。
     在大多數(shù)情況下,dynamic 類型與 object 類型的行為是一樣的。 但是,不會(huì)用編譯器對(duì)包含 dynamic 類型表達(dá)式的操作進(jìn)行解析或類型檢查。 編譯器將有關(guān)該操作信息打包在一起,并且該信息以后用于計(jì)算運(yùn)行時(shí)操作。 在此過程中,類型 dynamic 的變量會(huì)編譯到類型 object 的變量中。 因此,類型 dynamic 只在編譯時(shí)存在,在運(yùn)行時(shí)則不存在。

  • 代碼示例
    • 在聲明中,作為屬性、字段、索引器、參數(shù)、返回值或類型約束的類型。 下面的類定義在幾個(gè)不同的聲明中使用 dynamic。
    •      
          
      1. class ExampleClass
      2. {
      3.     static dynamic field;
      4.     dynamic prop { get; set; }
      5.     public dynamic exampleMethod(dynamic d)
      6.     {
      7.         dynamic local = "Local variable";
      8.         int two = 2;
      9.         if (d is int)
      10.         {
      11.             return local;
      12.         }
      13.         else
      14.         {
      15.             return two;
      16.         }
      17.     }
      18. }

在顯式類型轉(zhuǎn)換中,作為轉(zhuǎn)換的目標(biāo)類型。

 
 
  1. static void convertToDynamic() 
  2.     dynamic d; 
  3.     int i = 20; 
  4.     d = (dynamic)i; 
  5.     Console.WriteLine(d); 
  6.     string s = "Example string."; 
  7.     d = (dynamic)s; 
  8.     Console.WriteLine(d); 
  9.     DateTime dt = DateTime.Today; 
  10.     d = (dynamic)dt; 
  11.     Console.WriteLine(d); 

在以類型充當(dāng)值(如 is 運(yùn)算符或 as 運(yùn)算符右側(cè))或者作為 typeof 的參數(shù)成為構(gòu)造類型的一部分的任何上下文中。 例如,可以在下列表達(dá)式中使用 dynamic。

 
 
  1. int i = 8; dynamic d; d = i as dynamic; Console.WriteLine(typeof(List));

#p#

 .NET 數(shù)據(jù)類型之匿名類型(var)

  • 匿名類型 

匿名類型提供了一種方便的方法,可用來將一組只讀屬性封裝到單個(gè)對(duì)象中,而無需首先顯式定義一個(gè)類型。 類型名由編譯器生成,并且不能在源代碼級(jí)使用。 每個(gè)屬性的類型由編譯器推斷。

可通過使用 new 運(yùn)算符和對(duì)象初始值創(chuàng)建匿名類型。

  • 限制條件
    • 沒有控制匿名類型的名字
    • 匿名類型繼承自O(shè)bject
    • 匿名類型的字段和屬性總是只讀的
    • 匿名類型不支持事件、自定義方法、自定義操作符和自定義重寫
    • 匿名類型是隱式封閉的
    • 匿名類型的實(shí)例創(chuàng)建只使用默認(rèn)構(gòu)造函數(shù)
  • 語法
 
 
  1. var v = new { Amount = 108, Message = "Hello" };
  2. var anonArray = new[] { new { name = "apple", diam = 4 }, new { name = "grape", diam = 1 }};
  3. var productQuery = 
  4.     from prod in products
  5.     select new { prod.Color, prod.Price };
  6. foreach (var v in productQuery)
  7. {
  8.     Console.WriteLine("Color={0}, Price={1}", v.Color, v.Price);
  9. }

本文標(biāo)題:.NET數(shù)據(jù)類型匯總
標(biāo)題鏈接:http://m.5511xx.com/article/cdjsddi.html