屬性 方法引數 小例子 變數作用域

2021-10-08 10:13:06 字數 2901 閱讀 8466

為啥要屬性呢,比如我在類裡寫了個public string name = 「××××」; 那我在別的地方就可以修改他,問題是我不想讓別人修改,可是我寫private別人又不能訪問,該怎麼辦呢?這就需要屬性通過get和set

private string name;//隨便寫的乙個字段

public string name

set}//當然也可以只寫get或set 也可以兩個都寫

//如果只寫get的話,

public readonly string name = "xiaoming";

private string name = "xiaoming";

public string name

//這兩句話的效果是一樣的,只是第一句話用的readonly唯讀修飾符。

//快捷鍵小技巧來了 輸入prop+tab鍵+tab鍵 可以直接出模板

//舉個例子 這是乙個交換的方法

public void swap(int x, int y)

//在main函式裡寫這段

mathtool mymath = new mathtool();

int score_1 = 60;

int score_2 = 100;

mymath.swap(score_1, score_2);

console.writeline(score_1);

console.writeline(score_2);

//那麼輸出的結果是啥呢???是不是100 60

//其實結果是60 100

//原因是應為這是乙個值型別,值型別的話要是在main函式寫交換,那肯定就交換了,但是寫了乙個方法後他會把原來的值,複製乙份進行交換,方法裡確實交換了,可是這不影響main函式的,所以他們沒有交換。

//加上之後是這樣的

public void swap(ref int x, ref int y)

mymath.swap(ref score_1, ref score_2);

//啥叫輸出引數呢,其實他就return用法差不多,都是為了返回點什麼,只不過return返回的是乙個值,out能返回多個,在其他的語言裡有的return能返回一堆,c#不行

public void cal(int a, int b, out int x, out int y)

mymath.cal(numone, numtwo, out resultone, out resulttwo);

不同點是輸出引數必須對引數進行初始化。 ref引數是引用,也可進行運算,out引數為輸出引數不能把out的值賦值給別的變數。

這個主要用在不確定引數是多少個的時候用

public void sum(params int a)

console.writeline("結果為: " + result);

}//這樣就不需要new int了 直接傳值就可以

//如果有多個引數 params int a一定要放在最後不能放在前面

//params只能有乙個 不能多個

mymath.sum(1, 2, 3, 4, 5);

就是給引數加乙個預設值

public int getyourgrade(int yourage, int jumpcount = 0)

//預設值可以加多個,所有的引數全加預設值都行

//在呼叫的時候如果傳值的話,如果有預設值的話,可以不傳

getyourgrade(1)//第二個不給預設值0

/*

定義三個整型變數a,b,c要求將最大值賦值給a,中間值賦值給b,最小值賦值給c(要求使用ref)

用乙個方法同時計算矩形的面積和體積,並同時返回它的面積和體積(要求使用out)

寫乙個方法,可以將陣列按a[0]-a[1]+a[2]-a[3]+a[4]……的格式返回結果,在main方法中呼叫該方法。(引數要求用params修飾)

*/using system;

namespace canshu

if (b > a && b > c)

if (c > a && c > b)

a = max;

b = mid;

c = min;

}//第二題 不有道了直接拼音了 長 寬 高 面積 體積

public static void test2(int chang,int kuan,int gao,out int mianji,out int tiji)

//第三題

public static int test3(params int array)

else

}return num;

}//main函式呼叫

static void main(string args)

,b:,c:");

#endregine

#regine 第二題

int mianji = 0;

int tiji = 0;

test2(1, 2, 3,out mianji,out tiji);

console.writeline($"mianji:,tiji:");

#endregine

#regine 第三題

int num = test3(1, 2, 3, 4, 5, 6);

console.writeline(num);

#endregine}}

}

在類裡宣告的變數 叫全域性變數,也可以叫成員變數,在方法裡宣告的叫區域性變數,他的作用域只在當前的大括號內,如果現在有乙個全域性變數,還有乙個區域性變數宣告的完全一樣,那麼就近原則,而且區域性變數訪問前一定要賦值

函式 引數 變數作用域

一 函式引數 1.必須引數 必需引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣。呼叫printme 函式,你必須傳入乙個引數,不然會出現語法錯誤 小括號內的就是引數 小括號內沒東西叫做無參,有叫有參 求任意三個數之和 在定義函式的時候小括號內寫的是變數名字,不需要賦值 在呼叫函式的時候小...

變數作用域 構造方法。

構造方法 構造器 是一種特殊的方法,主要用於為成員變數初始化 為成員變數賦初始值 特徵 方法名必須與類名相同,沒有返回值型別。void也是一種返回值型別。語法 修飾符 類名 形參列表 構造方法使用new關鍵字呼叫。如果沒有顯式定義構造方法,虛擬機會自動新增無參構造,但是一旦顯式定義了構造方法,虛擬機...

Python函式引數傳遞以及變數作用域

使用 號,表示函式接受多個引數 def f args print args f 1 1,f 1,2,3 1,2,3 f f 1,2 1,2 使用 號,表示傳遞的是字典引數 def f1 args print args f1 a 1,b 2 3.將函式名作為引數傳遞 coding utf 8 用來支援...