C# 用this修飾符為原始類型擴展辦法。本站提示廣大學習愛好者:(C# 用this修飾符為原始類型擴展辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C# 用this修飾符為原始類型擴展辦法正文
定義一個靜態類,類中定義靜態辦法,辦法中參數類型前邊加上this修飾符,即可完成對this所指向類的擴展。
有點相似js中經過類的原型去擴展辦法,類的實例對象就可以經過對象.辦法名去調用
示例如
namespace Demo
{
// 這裡的類必需為靜態類
public static class Json
{
// 辦法為靜態辦法
// this修飾符後邊是string類型,即為string類型擴展出了ToJson辦法
public static object ToJson(this string Json)
{
return Json == null ? null : JsonConvert.DeserializeObject(Json);
}
// this修飾符後邊類型為object,即為object類型擴展出了ToJson辦法
public static string ToJson(this object obj)
{
var timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
return JsonConvert.SerializeObject(obj, timeConverter);
}
public static string ToJson(this object obj, string datetimeformats)
{
var timeConverter = new IsoDateTimeConverter { DateTimeFormat = datetimeformats };
return JsonConvert.SerializeObject(obj, timeConverter);
}
public static T ToObject<T>(this string Json)
{
return Json == null ? default(T) : JsonConvert.DeserializeObject<T>(Json);
}
public static List<T> ToList<T>(this string Json)
{
return Json == null ? null : JsonConvert.DeserializeObject<List<T>>(Json);
}
public static DataTable ToTable(this string Json)
{
return Json == null ? null : JsonConvert.DeserializeObject<DataTable>(Json);
}
public static JObject ToJObject(this string Json)
{
return Json == null ? JObject.Parse("{}") : JObject.Parse(Json.Replace(" ", ""));
}
}
class Program
{
static void Main(string[] args)
{
try
{
List<User> users = new List<User>{
new User{ID="1",Code="zs",Name="張三"},
new User{ID="2",Code="ls",Name="李四"}
};
// List被擴展出了ToJson辦法,用於轉化json字符串
string json = users.ToJson();
// string類型被擴展出了ToJson辦法,用於轉化對象
object obj = json.ToJson();
// string類型被擴展出了ToList辦法,用於轉化List
users = json.ToList<User>();
// string類型轉化DataTable
DataTable dt = json.ToTable();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
Console.ReadLine();
}
}
}
public class User
{
public string ID { get; set; }
public string Code { get; set; }
public string Name { get; set; }
}
}