国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

走進C#(我的C#學習之旅) 之四(3)

2024-07-21 02:25:16
字體:
來源:轉載
供稿:網友
怎么樣?
答案是這樣的

s1 is a string
s2 is a string
s1 is now anothing string
s2 is now string

看到這個結果大家感覺怎么樣!我是很感到意外的。因為根據原來的c實現字符串的方式,

在這里面作為一個指針來說,s1與s2應該指向相同的地址。

另外對于字符串處理還有另一個問題,如下例:
要構建如下一個串:"c:/program file/wom",我想大家明白我的意思了吧!
就是說在這里有 / 但是 / 是做為轉義字符來用的。
(嗯,很簡單)這樣就行了呀:"c://program file//wom",完全正確。而c#又提供了另一

種方式來解決這樣的問題。其實是引入了一個@:
上面的可以這樣寫 string [email protected]"c:/program file/wom",這樣c#會把@后的所有字符都做為

所來的形式來處理,并且他還包含換行符。

好了,關于c#最基本的數據類型就是這些了?。ㄠ蓿孟裆倭它c什么,對對,我下面就要說

了?。?br>
上面是最基本的數據類型,下面我們來談談由這些基本的數據類型所構民的復全數據類型。

對于復合的數據類型,還是分兩類來簡述。

首先要說的還是值類型。在c#提供了兩種復合的值類型,結構與枚舉。
對于這兩種類型大家是不是很熟悉呀?但是大家不要大意,在c#中這兩種類型已經有了不小

的變化。

還是看個例子呀,還是例子比較能說明問題。

定義了如下的一個結構:
public struct subscriber
{
public long lngsubscriberid;
public string strfirstname;
public string strmiddlename;
public string strlastname;
public decimal decbalance;
}
是不是和原來的結構有了很大的不同!在c#中結構其實就是一個特殊的類。
再看一下結構的使用:

subscriber subscriber1;
subscriber subscriber2;

subscriber1=new subscriber();
subscriber1.strfilstname="john";
subscriber1.strmiddlename="q";
subscriber1.strlastname="public";
subscriber1.decbalance=100;

subscriber2=subscriber1;

這里定義了兩個結構:subscriber1,subscriber2。
然后用new運算符,對subscriber1進行了初始化。關于初始化在這里多說一句。對于結構可

以不用new運算符來進行始化。因為在定義的同時就已經進行了一次初始化,所有字段的默

認值為0。但是這方式還有一個弊端,那就是沒辦法進行兩個結構變量的復制。
再下面的代碼就是實現了對新結構的賦值。而最后一行,就是我所說的結構間的復制。
那么結構有什么好處呢。我想最主要的一點就是體現在函數的傳遞中,可以把多個變量打到

一個結構變量中進行傳遞。
前面說過了,結構是一個特殊的類,他們倆最主要的不同就是結構不支持繼承。

好了,說了這么多,下面來看看枚舉。
還是通過一個例子來看看枚舉。

public enum timeofday
{
morning=0,
afternoon=1,
evening=2
}
class enumexample
{
public static int main()
{
writegreeting(timeofday.morning);
return 0;
}
static void writegreeting(timeofday timeofday)
{
switch(timeofday)
{
case timeofday.morning:
console.writeline("good morning!");
break;
case timeofday.afternoon:
console.writeline("good afternoon!");
break;
case timeofday.evening:
console.writeline("good evening!");
break;
default:
console.writeline("helo!");
break;
}
}
}

對于這個枚舉我想大家一目了然了吧!對于枚舉我私人認為呀,就是有點像常數,都是用名

字來打替數據嗎!

對于復合的值類型就說到這,下面再看看復合的引用類型(數組、類、接口、委托)。

我首推的當然是大家最熟悉的,那就是數組:
由于在c#中限制了對指針的使用,所以對c#數組的使用也產生了影響。
首先還是看看例子:

int[] a;
int[] a = new int[32]
a[0]=35;
a[31]=322;
int[] b;
b=new int[32];
string[] c={"a","b","c"};
string[] d=new string[]{"a","b","c"};

對于上面的例子,說明了幾個要注意的問題。
(1)在c#中數組的起始下標還是為0的。
(2)對數組的初始化要使用new運算符。
(3)在c#中也可以動態定義數組。
(4)對于數組的初始化支持和java一樣的{}方式。
(5)在數組的初始化中這種方式是決不不允許的
int len=3;
string d=new string[len]{"a","b","c"};
對應的解決方式:可以這么寫:const int len=3;
也就是說不可以給變量來設置數組的長度。
(6)還忘了的一個就是數組定義要使用[]。
(7)再有一點不允許的使用方式如下:
string[] e=new string[3]{"a","b","c","d"};

下面再看個例子:

string[] d=new string[]{"linda","lily","adidas"};
int ff=d.length; //取數據長度
int ee=d.getlength(0); //取出指定數據維的長度
array.sort(d); //對數組排序
array.reverse(d); //把數組反序

由于數組在c#中表示為一種特殊的類型,所以它們有自己的一些方法。這些方法為我們使用數組提供了很大的方便。

上面這些都是對一維數組的使用,同樣c#也是支持多維數組的。下面來看看多維數組吧。
還是通過一個例子來認識一下多維數組的定義和操作。

int[,] a=new int[,]{{1,2,3},{1,2,3},{4,5,6}};
int[,,] b;
int[,,] b=new int[,,]{10,20,30};

string[][] arylists=new string[3][];
arylists[0]=new string[]{"a","b","c"};
arylists[1]=new string[]{"d","e","f"};
arylists[2]=new string[]{"g","h","i"};
int i;
for(i=0;i<arylists.getlength(0);i++)
{
int j;
for(j=0;j<arylists[i].getlength(0);j++)
{
console.write(arylists[i][j] + ",");
}
console.write("/n");
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雷山县| 肃北| 盐津县| 南乐县| 六枝特区| 萨嘎县| 六盘水市| 台前县| 区。| 衡阳县| 柞水县| 阳东县| 邵武市| 贡山| 新密市| 肇东市| 南皮县| 微山县| 互助| 兰考县| 新河县| 马边| 高安市| 汉沽区| 冕宁县| 收藏| 兴山县| 马山县| 泾川县| 民乐县| 阿合奇县| 泰顺县| 郓城县| 鄂托克前旗| 江西省| 怀安县| 福安市| 吉林市| 东乡县| 宁陕县| 合肥市|