型別轉換cast:
將字串轉換成「數值型別」 (int、foat、doube)
int.parse(string str)、int.tryparse(string str,out int n)推薦使用後面這個
doube.parse(string str)、doube.tryparse(string str,out doube d)
parse()轉換失敗報異常,tryparse()轉換失敗不報異常
is與as直接型別轉換:
if(p is student)
cr會進行兩次型別檢查if(檢查一次)
student stu=p as student;//推薦,效率高於第一種,如果轉換失敗返回nu,而不會報異常。
型別轉換convert:
convert考慮資料意義的轉換;convert是乙個加工、改造的過程
異常處理的一般**模式:
trycatch
finay
異常處理**的其他幾種形式:
•try → 多個catch → 乙個finay
•try→(1個或多個catch),多個catch的順序問題。沒有finay
•try→finay(只能有乙個),沒有catch也可以
注意點:
•發生異常後,try塊中,異常**後的**不會執行
•finay塊中的**,無論是否發生異常都會執行
•finay中不能寫return語句
•try中有return語句,finay也會執行
•即便沒有catch,finay中的**也會執行,但finay之後的**則不會
exception ex 異常也是物件,封裝了異常發生時的一些資訊
exception 類主要屬性:message、stacktrace、innerexception(*)
扔出自己的異常,扔:throw,抓住:catch
建議:通過邏輯判斷(if-ese)減少異常發生的可能性!
在多級方法巢狀呼叫的時候,如果發生了異常,則會終止所有相關方法的呼叫,並且釋放相關的資源。
值型別均隱式派生自system.vauetype
•數值型別、boo、結構、列舉
•檢視i,隱式繼承自vauetype
引用型別派生自system.object
•字串、陣列、類、介面等
•檢視i隱式繼承自object
引用型別變數的賦值只複製對物件的引用
值型別變數賦值會拷貝乙個副本
值傳遞:普通的引數傳遞
值型別:值傳遞、引用傳遞
引用型別:引用傳遞
params:可變引數,無論有幾個引數,必須出現在引數列表的最後,可以為可變引數直接傳遞乙個對應型別的陣列
•引數在傳遞之前必須賦值
•應用場景:內部對外部的值進行改變
out:讓函式可以輸出多個值
•在方法中必須為out引數賦值
•傳遞之前不需要賦值,即使賦值了也不能在方法中使用
•一般用在函式有多個返回值的場所
字串特性
不可變性,示例:toupper();由於字串是不可變的,所以每次修改字串都是建立了乙個單獨的字串副本(又拷貝了乙個字串),畫圖演示
字串池:更高效的利用記憶體;當程式中有多個相同的字串常量時,這些字串都指向記憶體中的同乙個字串,這種特性叫做:字串池
字串池不會造成混亂,是因為:字串具有不可變性
string:字串型別
字串可以看成字元陣列,但是在迴圈時不可以更改,因為不可變特性
屬性ength :獲得字串中字元的個數
例:」aa我你他」→5
方法isnuorempty():靜態方法,判斷為nu或者為」」
方法tochararray() :將string轉換為char
方法toower():將所有字母變為小寫
方法toupper():將所有字母變為大寫
string:字串型別
字串可以看成字元陣列,但是在迴圈時不可以更改,因為不可變特性
屬性ength :獲得字串中字元的個數
例:」aa我你他」→5
方法isnuorempty():靜態方法,判斷為nu或者為」」
方法tochararray() :將string轉換為char
方法toower():將所有字母變為小寫
方法toupper():將所有字母變為大寫
方法equas() :比較兩個字串是否相同;忽略大小寫的比較,使用引數stringcomparation
方法contains():是否包含
方法indexof() :如果沒有找到對應的資料,返回-1
方法astindexof() :如果沒有找到對應的資料,返回-1
方法substring() : 2個過載,擷取字串
方法spit() :分割字串
方法join() :靜態方法
方法format () :靜態方法
方法repace() :替換,一次性全部替換
方法trim() :2個方法的過載
注意:對字串的操作一定要用變數接收返回值,因為字串是不能變的,每次都是構建乙個新的字串
stringbuider
高效的字串操作
當大量進行字串操作的時候,比如,很多次的字串的拼接操作
在需要對字串執行重複修改的情況下,為個體建立新的 string 物件相關的系統開銷可能會非常大。 如果要修改字串而不建立新的物件,則可以使用 system.text. stringbuider 類
stringbuider != string//將stringbuider轉換為string用tostring();
stringbuider僅僅是拼接字串的工具,大多數情況下還需要把stringbuider轉換為string
•stringbuider sb = new stringbuider();
•sb.tostring();//把stringbuider轉換為字串。
•sb.insert();
•sb.repace();
equas方法
比較兩個物件是否為同乙個物件?
為什麼字串的equas和別的不一樣?
• string的equas方法判斷的是字串的內容是否相同(重寫了object中的equas方法)
•object中的equas方法是判斷物件的位址是否相同
檢視string類的==運算子,內部呼叫的也是equas
在自定義型別中重寫此方法,用於判斷兩個物件是否相同
C 總複習 型別轉換
1.常見型別轉換 int i double d 2.5 i 1.5 隱式型別轉換 i int 1.5 顯式型別轉換 i d 隱式型別轉換 i int d 顯式型別轉換 一般情況下,int 型轉換為int型是非常不可思議的 即非常危險的 編譯器不允許隱式型別轉換的發生,報出錯誤。如果一定要完成這種不能...
c int與string 型別轉換
1,int轉成string 用tostring 或者convert.tostring 如下 例如 int varint 1 string varstring convert.tostring varint string varstring2 varint.tostring 2,string轉成int...
String 型別基本轉換 valueOf
1.由 基本資料型態轉換成 string string 類別中已經提供了將基本資料型態轉換成 string 的 static 方法 也就是 string.valueof 這個引數多載的方法 有下列幾種 string.valueof boolean b 將 boolean 變數 b 轉換成字串 str...