私人C 筆記

2022-02-13 17:39:48 字數 3908 閱讀 4023

coust 定義常量

string是密封類,所以不能繼承它

namespace預設是按照資料夾的結構命名的,如(system.資料夾.子資料夾),而且namespace是可以手動改的

arraylists可以放進去所有型別的變數,可以把它看作動態陣列

addremove,removeat

clear

list.contains();     判斷元素是否存在

list

hashset只保留乙份重複的資料

dictionary

stopwatch類是秒錶

random     隨機數

path          路徑處理

combine(第一部分,第二部分)     //合併路徑,自動處理路徑的斜槓

file

file.writealltext(路徑,內容)//寫入檔案,如果檔案不存在則建立,如果資料夾不存在則丟擲異常

directory

stringbuilder

可空型別

在值型別名後加上個問號(?)可以宣告可空型別的變數

int? i=null;

i.hasvalue()     判斷是否為null

ftp,http處理

webclient

ftpwebrequest

時間間隔

timespan

聲音處理

soundplayer

委託中的匿名方法

delegate()

lambda表示式

testdelegate td = (s1,s2) => 

擴充套件方法

擴充套件靜態類的方法,使字面量可以直接呼叫類似string類的tolower(),toupper()方法

如:str.isemail()

無參擴充套件方法:自己寫個靜態類,在方法的第1個引數前加上this關鍵字

有參的擴充套件方法,第乙個引數就是要呼叫的物件,以後的引數依次是擴充套件方法的引數

linq

型別推斷

var關鍵字宣告變數,但和js中不同,js是弱型別的語言,可以為變數賦任何型別的值,

c#中一旦為變數賦了一種型別的值,就不能為其賦其餘型別的值

匿名型別

var p = new ;

p是匿名型別的物件

linq的簡便方法

from i in values

where i<0

orderby i descending 

select i;//select在最後

//select new person     可以建立物件

gc.collect();     //手動垃圾**

weakreference 弱引用,監視乙個變數是否被**

string 和 stringbulder的區別

stringbuilder不會產生大量的臨時字串

"abc"=="123"     //判斷值

object.refernceequals(s1,s2)     //判斷物件的引用是否相同

字串拘留池,會重用字串物件,

但每次new出乙個字串,就肯定是建立了乙個新的物件

c#中使用指標

在專案的屬性中選中"允許不安全的**",並且在方法前要加上"unsefe"關鍵字才可以使用指標

運算子過載

public bool operator ==(person p1,person p2)

結構體是值型別

淺度複製和深度複製

icloneable介面提供乙個clone()方法可以進行深度複製,但實現**需要自己完成

new乙個物件把各個屬性都挨個複製

可以使用物件的memberwiseclone()方法來進行淺度複製,

它返回乙個object物件,需要自己轉換成所需 的型別

數字與字串相加,以數字開頭,就返回與第乙個數字相連的和再與餘下的字串相加

,以字串頭,就以數字的tostring()相加

字串與乙個非字串物件相加,得到的是它的tostring*(

sealed 作為類的修飾符是密封類,作為方法的修飾符,不允許子類override

stream

file,fileinfo,directory,directoryinfo

filestream,gzipstream

streamreader,streamwriter

泛型委託,系統定義的委託func

泛型約束

//建構函式約束

function() where t:new() //約束t必須有無參的建構函式

//繼承約束

function() where t:base

default(t)返回這個型別的預設值,如果是值型別就返回null

程式集

反射assembly類

type類是對類的更高階的抽象,所有類都是它的例項

//沒有物件的時候通過類來獲得類的描述

type t=typeof(person)

//gettype()獲得物件的類的型別描述

asbls[0]
type t2=dog.gettype();

activator.createinstance(type);//建立type類的例項,要求必須有無參的建構函式

typeof(class) 返回class的type描述

類的標記(attribute)

[serialize]標記類為可序列化

[displayname("顯示的類名")]

私人學習筆記(六)

common validate create database create table insert into shop dbo userinfo username userpwd usertel useremail userdate regdate values select from user...

變數的私人

為什麼要提供公共訪問的功能,它使乙個成員變數的私人?答案是 封裝 封裝在現實生活中,它是常見的使用一些不知道它是如何工作的。例如,你的電視遙控器提供的按鈕,讓你做的事情一樣,把你的電視和關閉和調整音量。然而,如何實現遠端實際上是隱藏。這很有用,因為它允許你使用遠端無需擔心的細節為什麼它或它是如何實現...

私人筆記,微信掃碼登陸

注意 2.redirect uri 掃碼成功後跳轉的頁面 3.scope 有兩個可選值 snsapi base 或者 snsapi userinfo 其中 1 snsapi base 為scope的網頁授權,是靜默授權的,使用者無感知 2 snsapi userinfo snsapi userinf...