值型別轉換的幾種方式

2022-01-19 00:09:09 字數 1579 閱讀 3426

引用型別的轉換方式有隱式轉換、強制轉換、as轉換等。值型別的轉換方式也有不少,本篇稍稍歸納。

□ 隱式轉換

int i = 10;
float f = i;
console.writeline(f);
如果是值型別,當被轉換變數的數值範圍小於目標變數的數值範圍,就可以實現隱式轉換;如果是引用型別,子類可以隱式轉換成父類。

□ 強制轉換

float f = 10.56f;
int i = (int) f;
console.writeline(i);
如果是值型別,當被轉換變數的數值範圍大於目標變數的陣列範圍,考慮使用強制轉換;如果是引用型別,父類可以強制轉換成某個子類。值得注意的是:強制轉換可能會導致損失一些精度。

□ 通過system.convert的靜態方法實施轉換

比如把乙個整型轉換成

sysem.char

型別。

char result = convert.tochar(68);
console.writeline(result);
通過system.convert轉換失敗會報

overflowexception

異常。□ 通過值型別的靜態方法

把字串轉換成int型別。

string str = "11";
int i = int.parse(str);
console.writeline(i);
如果字串中包含非數字,會丟擲

system.formatexception

異常。

string str = "11a";
int i = int.parse(str);
console.writeline(i);

如何避免這種情況呢?

--使用

int.tryparse

方法可以避免這種情況。

string str = "11a";
int result = 1;
bool issuccess = int.tryparse(str, out result);
if (issuccess)
else
□ 通過iconvertible介面方法

由於所有的值型別都實現了

iconvertible

介面,可以通過該介面的方法實現值型別轉換。

char result =  ((iconvertible) 68).tochar(null);
console.writeline(result);
如果轉換失敗,會丟擲

system.invalidcastexception

異常。

Int型別轉換的幾種方式差異

1 int 是一種型別轉換 當我們觟nt型別到long,float,double,decimal型別,可以使用隱式轉換,但是當我們從long型別到int型別就需要使用顯式轉換,否則會產生編譯錯誤。2 int.parse 是一種類容轉換 表示將數字內容的字串轉為int型別。如果字串為空,則丟擲argu...

c 幾種型別轉換方式

1 初始化和賦值進行的轉換 1 float one 1 整型轉浮點型23 int guess 2.333 double轉int45 int debt 7.2e12 flot轉int 但是無法儲存過大資料 2 以 方式初始化時進行轉換 1 條件 不允許轉換最大範圍還大大的資料,比如float就不能轉換...

vue 傳值的幾種方式

1.父子傳值 第一步 在父元素中繫結乙個引數 我這裡的是 id updateid 第二步 在子元素中接受,使用props接收。2.子向父傳值 第一步 在子元件中觸發 我這裡並沒有傳值,如果需要傳值,就 self.emit updates 你要傳的值 第二步 在父元素監聽事件 傳參的直接在update...