C 之專案常用方法之靜態擴充套件

2022-02-22 02:01:59 字數 2636 閱讀 5142

一般專案中我們經常用到資料json的序列化與反序列化,為了方便在需要的地方快速使用,一般建議都封裝為靜態擴充套件方法,在需要的地方可直接使用。

ps:若要新增此擴充套件方法,必須得在nuget包中新增  newtonsoft.json  的引用。

using

system;

using

system.collections.generic;

using

system.text;

using

newtonsoft.json;

using

newtonsoft.json.converters;

using

newtonsoft.json.serialization;

namespace

demoframe_basic.extensions

if(isnullvaluehandling)

options.nullvaluehandling =nullvaluehandling.ignore;

options.referenceloophandling =referenceloophandling.ignore;

options.converters = new list };

return

obj.tojson(options);

}//////

json字串

/// ///

需要序列化的物件 例:t.tojson(settings)

///json序列化設定

///json字串

public

static

string tojson(this

object

obj, jsonserializersettings settings)

//////

返回相關設定格式字串

/// ///

///格式 例:yyyy-mm-dd hh:mm:ss

///設定格式字串

public

static

string todatetimestring(this

object obj, string

format)

//////

得到字串的byte

/// ///

///byte

public

static

byte getbytes(this

string

str)

public

static

bool tobool(this

string str, bool defaultvalue = false

)

public

static

short toshort(this

string str, short defaultvalue = 0

)

public

static

int toint(this

string str, int defaultvalue = 0

)

public

static

long tolong(this

string str, long defaultvalue = 0

)

public

static

double todouble(this

string str, double defaultvalue = 0

)

public

static tenum toenum(this

string str, bool ignorecase = true, tenum defaultvalue = default(tenum)) where tenum : struct

public

static t tonettype(this

string str, bool isignorenull = true, bool isignoreex = false

) ;

try

else

if ("

\"\"

" ==str)

else

}catch

(exception)

}public

static t tonettype(this

string

str, jsonserializersettings settings)

else

if ("

\"\"

" ==str)

else

}catch

(exception)

}//////

比較是否相等,忽略大小寫

/// ///

//////

public

static

bool equalsignorecase(this

string a, string

b)

}}

C 語法之擴充套件方法

擴充套件方法使你能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。這是msdn的描述。上面幾句我看好多部落格都是這樣開頭的。所以我也這樣開頭。一 為什麼要有擴充套件方法?開頭也說了,無...

c 之靜態函式和靜態方法

1 物件與物件之間要共享資料,則需要使用靜態成員或靜態方法。2 在類中宣告靜態成員變數,即使不例項化物件,也可以我靜態成員變數分配空間。因為靜態成員變數在物件建立之前就已經被分配了記憶體空間 3 靜態成員雖在類中,但它並不是隨物件的建立而分配記憶體空間的,也不是隨物件的撤銷而釋放 一般的成員在物件建...

專案中常用的C 擴充套件方法

我們經常使用一些匿名委託來處理一些邏輯 但是在某些情況下,有可能委託是null,要是直接執行可能會拋異常 所以提供此擴充套件方法,直接可以使用例如 action.execute 來執行 namespace system public static void execute this actionac...