久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

String和string,?

 紫衣風(fēng)華 2015-03-04

為什么Java中int小寫String大寫,?Java沒有string,?在c#中為什么又會有String和string,?

思索了很久,在百度和谷歌中也搜了很久,,MSDN中也查閱了一下,,但這個問題始終還是困擾著我。

首先針對Java中int小寫String大寫的問題,,網(wǎng)上是這樣說的,。int是關(guān)鍵字,而String是類,,所有的關(guān)鍵字都是小寫,,至此我又產(chǎn)生了一個問題。字符串類型和其他類型區(qū)別在哪,?也就是說String和short,、byte等類型的區(qū)別在哪,?我越來越混沌名單,,但好像也越來越清晰對他們的看法,。

為什么c#中String和string都可以聲明字符串,?而Java中只用String來聲明呢,?這也就是說為什么Java中聲明字符串不是像聲明整型那樣用關(guān)鍵字來定義呢?

下面是粘貼來的:

Stringstring的區(qū)別

從位置講:

        1.String是.NET   Framework里面的String,,小寫的string是C#語言中的string

    2.如果把using System;刪掉,,沒有大寫的String了,,System是.NET   Framework類庫中的一個函數(shù)名.

從性質(zhì)講:

1.  string是關(guān)鍵字,,String是類,,string不能作為類,、結(jié)構(gòu),、枚舉,、字段,、變量,、方法、屬性的名稱

2.  用C#編寫代碼的情況下盡量使用小寫的string,,比較符合規(guī)范,如果在追求效率的情況下可以使用大寫的String,,因為最終通過編譯后,小寫的string會變成大寫的String,,可以給編譯減少負(fù)荷,從而運行效率提高,。

3.  string 類型表示 Unicode 字符的字符串,,string 是 .NET Framework 中的 String 的別名,,對字符串相等性的測試更為直觀

string詳解:

          string s = string.Empty:一個指向空字符串的字符串變量, s不占用存儲空間.s變量可以使用,比如s.Length
string s = "";一個指向"\0"的空字符串, 占用一個字節(jié)存儲空間,因為轉(zhuǎn)義符\0代表字符串結(jié)束.s變量可以使用,比如s.Length
string s = null; 一個指不向任何一個存儲空間的變量,s不可以使用
            

單個字符分割

string s="abcdeabcdeabcde";

string[] sArray=s.Split('c');

foreach(string i in sArray)

Console.WriteLine(i.ToString());

輸出下面的結(jié)果:

ab

deab

deab

de

多個字符分割:

string s="abcdeabcdeabcde

string[] sArray1=s.Split(new char[3]{'c','d','e'});

foreach(string i in sArray1)

Console.WriteLine(i.ToString());

可以輸出下面的結(jié)果:

ab

ab

ab

多個字符分割(正則表達式):

string content="agcsmallmacsmallgggsmallytx";

string[]resultString=Regex.Split(content,"small",RegexOptions.IgnoreCase)

foreach(string i in resultString)

Console.WriteLine(i.ToString());

輸出下面的結(jié)果:agc

mac

ggg

ytx 

0.  問題:
1. C#到底是什么時候傳引用,?什么時候傳值,?
2. String傳值還是傳引用
3. string和String有什么區(qū)別?
4. String為什么是Immutable,,怎么實現(xiàn)的,?

以下查詢結(jié)果以及我的理解:

1. C#到底是什么時候傳引用?什么時候傳值,?
傳值的情況?。篠truct、Enumeration,、Numeric(Integral/Floating/decimal),、bool
傳引用的情況:class、Delegate,、Interface

當(dāng)使用操作符"="以及函數(shù)傳參數(shù)的時候:
      傳值的結(jié)果是把原對象復(fù)制了一份,接收者指向原對象,。
      傳引用的結(jié)果是直接讓接收者指向原對象,。
 
有人說,,我硬要把值當(dāng)引用傳怎么辦,?
a、用ref關(guān)鍵字
b,、用數(shù)組,,數(shù)組是class
c、涼拌:)

2. String傳值還是傳引用
C#的String聲明是class String,,當(dāng)然是傳引用,。
不過,之所以有這個疑惑,,多數(shù)是因為這個情況:
string a = "aaa";
string b = a;
b = "bbb";
或者是這么幾行代碼:
public void Swap(string s1, string s2)
{
    string temp=s1;
    s1=s2;
    s2=temp;
}
這時候結(jié)果一打印,,結(jié)果發(fā)現(xiàn)a的值還沒有變,Swap也沒有成功,,這時候就會有幻覺:是不是沒有傳引用?。?/font>
呵呵,,string不會這么粗暴的打亂“聲明為class就是傳引用”這種規(guī)則的,。
分析一下:
string a = "aaa"; //==> a----->new String("aaa")
string b = a;        //==> b----->a, 傳引用
b = "bbb";          //==> b----->new String("bbb"), 傳引用,b指向了一個新的字符串,,a并沒有變,。
 
Swap函數(shù)也是這樣,,比如說傳了a, b進去(a="aaa", b="bbb"),
    //s1----->a, s2----->b
    string temp=s1;//temp----->s1----->a
    s1=s2;               //s1----->s2----->b;
    s2=temp;          //s2----->temp----->a
結(jié)果是,,s1和s2確實是Swap了,,但是這種結(jié)果并不會影響到a和b

3. string和String有什么區(qū)別?
MSDN中對string的說明:string is an alias for String in the .NET Framework
呵呵string是String的別名而已,,都是一家,。

4. String為什么是Immutable,怎么實現(xiàn)的,?
immutable:對象一旦生成不可改變
關(guān)于怎么實現(xiàn)的,,在明白了問題2之后很好辦,只要不提供任何修改自己成員變量的方法就可以了,。順便聲明為sealed,,防止不清楚的后來者違反規(guī)定:)
String每個看似修改了成員變量的方法,事實上都返回了一個新的String,。
比如String.Replace函數(shù),,事實上并沒有改變原來的串,這也是為什么只有讓str = str.Replace( foo, bar )才真正完成替換的原因,。

 

 

看來正有一天真正的把Java和C#區(qū)別開來的時候,,就明白其中的道理了。

為什么Java中int小寫String大寫,?Java沒有string,?在c#中為什么又會有String和string?

思索了很久,,在百度和谷歌中也搜了很久,,MSDN中也查閱了一下,但這個問題始終還是困擾著我,。

首先針對Java中int小寫String大寫的問題,,網(wǎng)上是這樣說的。int是關(guān)鍵字,,而String是類,,所有的關(guān)鍵字都是小寫,至此我又產(chǎn)生了一個問題,。字符串類型和其他類型區(qū)別在哪,?也就是說String和short、byte等類型的區(qū)別在哪,?我越來越混沌名單,,但好像也越來越清晰對他們的看法。

為什么c#中String和string都可以聲明字符串,?而Java中只用String來聲明呢,?這也就是說為什么Java中聲明字符串不是像聲明整型那樣用關(guān)鍵字來定義呢,?

下面是粘貼來的:

Stringstring的區(qū)別

從位置講:

        1.String是.NET   Framework里面的String,,小寫的string是C#語言中的string

    2.如果把using System;刪掉,,沒有大寫的String了,System是.NET   Framework類庫中的一個函數(shù)名.

從性質(zhì)講:

1.  string是關(guān)鍵字,,String是類,,string不能作為類、結(jié)構(gòu),、枚舉,、字段、變量,、方法,、屬性的名稱

2.  用C#編寫代碼的情況下盡量使用小寫的string,比較符合規(guī)范,,如果在追求效率的情況下可以使用大寫的String,,因為最終通過編譯后,小寫的string會變成大寫的String,,可以給編譯減少負(fù)荷,,從而運行效率提高。

3.  string 類型表示 Unicode 字符的字符串,,string 是 .NET Framework 中的 String 的別名,,對字符串相等性的測試更為直觀

string詳解:

          string s = string.Empty:一個指向空字符串的字符串變量, s不占用存儲空間.s變量可以使用,比如s.Length
string s = "";一個指向"\0"的空字符串, 占用一個字節(jié)存儲空間,因為轉(zhuǎn)義符\0代表字符串結(jié)束.s變量可以使用,比如s.Length
string s = null; 一個指不向任何一個存儲空間的變量,s不可以使用
            

單個字符分割

string s="abcdeabcdeabcde";

string[] sArray=s.Split('c');

foreach(string i in sArray)

Console.WriteLine(i.ToString());

輸出下面的結(jié)果:

ab

deab

deab

de

多個字符分割:

string s="abcdeabcdeabcde

string[] sArray1=s.Split(new char[3]{'c','d','e'});

foreach(string i in sArray1)

Console.WriteLine(i.ToString());

可以輸出下面的結(jié)果:

ab

ab

ab

多個字符分割(正則表達式):

string content="agcsmallmacsmallgggsmallytx";

string[]resultString=Regex.Split(content,"small",RegexOptions.IgnoreCase)

foreach(string i in resultString)

Console.WriteLine(i.ToString());

輸出下面的結(jié)果:agc

mac

ggg

ytx 

0.  問題:
1. C#到底是什么時候傳引用?什么時候傳值,?
2. String傳值還是傳引用
3. string和String有什么區(qū)別,?
4. String為什么是Immutable,怎么實現(xiàn)的,?

以下查詢結(jié)果以及我的理解:

1. C#到底是什么時候傳引用,?什么時候傳值?
傳值的情況?。篠truct,、Enumeration、Numeric(Integral/Floating/decimal),、bool
傳引用的情況:class,、Delegate、Interface

當(dāng)使用操作符"="以及函數(shù)傳參數(shù)的時候:
      傳值的結(jié)果是把原對象復(fù)制了一份,,接收者指向原對象,。
      傳引用的結(jié)果是直接讓接收者指向原對象。
 
有人說,,我硬要把值當(dāng)引用傳怎么辦,?
a,、用ref關(guān)鍵字
b、用數(shù)組,,數(shù)組是class
c,、涼拌:)

2. String傳值還是傳引用
C#的String聲明是class String,當(dāng)然是傳引用,。
不過,,之所以有這個疑惑,多數(shù)是因為這個情況:
string a = "aaa";
string b = a;
b = "bbb";
或者是這么幾行代碼:
public void Swap(string s1, string s2)
{
    string temp=s1;
    s1=s2;
    s2=temp;
}
這時候結(jié)果一打印,,結(jié)果發(fā)現(xiàn)a的值還沒有變,,Swap也沒有成功,這時候就會有幻覺:是不是沒有傳引用???
呵呵,string不會這么粗暴的打亂“聲明為class就是傳引用”這種規(guī)則的,。
分析一下:
string a = "aaa"; //==> a----->new String("aaa")
string b = a;        //==> b----->a, 傳引用
b = "bbb";          //==> b----->new String("bbb"), 傳引用,,b指向了一個新的字符串,a并沒有變,。
 
Swap函數(shù)也是這樣,,比如說傳了a, b進去(a="aaa", b="bbb"),
    //s1----->a, s2----->b
    string temp=s1;//temp----->s1----->a
    s1=s2;               //s1----->s2----->b;
    s2=temp;          //s2----->temp----->a
結(jié)果是,,s1和s2確實是Swap了,,但是這種結(jié)果并不會影響到a和b

3. string和String有什么區(qū)別?
MSDN中對string的說明:string is an alias for String in the .NET Framework
呵呵string是String的別名而已,,都是一家,。

4. String為什么是Immutable,怎么實現(xiàn)的,?
immutable:對象一旦生成不可改變
關(guān)于怎么實現(xiàn)的,,在明白了問題2之后很好辦,只要不提供任何修改自己成員變量的方法就可以了,。順便聲明為sealed,,防止不清楚的后來者違反規(guī)定:)
String每個看似修改了成員變量的方法,事實上都返回了一個新的String,。
比如String.Replace函數(shù),,事實上并沒有改變原來的串,這也是為什么只有讓str = str.Replace( foo, bar )才真正完成替換的原因,。

 

 

看來正有一天真正的把Java和C#區(qū)別開來的時候,,就明白其中的道理了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多