C#中this用法系列(二) 通过this修饰符为原始类型扩展方法

 更新时间:2016年12月01日 17:11:12   作者:天碼行空  
定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展,下面通过实例代码给大家介绍下,需要的朋友参考下吧

定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展

示例如

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("&nbsp;", ""));
}
}
public class User {
public string ID { get; set; }
public string Code { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(stringtry
{
List<User> users = new List<User>new User{ID="1",Code="zs",Name="张三"},
new User{ID="2",Code="ls",Name="李四"}
};
// List被扩展出了ToJson方法,用于转化字符串
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();
}
}
}
}

以上所述是小编给大家介绍的C#中this用法系列(二) 通过this修饰符为原始类型扩展方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • C#控制台实现飞行棋游戏

    C#控制台实现飞行棋游戏

    这篇文章主要为大家详细介绍了C#控制台实现飞行棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • WPF利用TabControl控件实现拖拽排序功能

    WPF利用TabControl控件实现拖拽排序功能

    在UI交互中,拖拽操作是一种非常简单友好的交互,这篇文章主要为大家介绍了WPF如何利用TabControl控件实现拖拽排序功能,需要的小伙伴可以参考一下
    2023-10-10
  • C#开发答题赢钱游戏(自动答题器)

    C#开发答题赢钱游戏(自动答题器)

    现在最火的直播游戏,那就是答题赢钱直播了,如百万英雄、芝士超人、花椒直播、冲顶大会等等,这些游戏的玩法都很简单,答对12题即可瓜分奖金了。玩法虽简单但是完全答对12题难度就挺高了,下面小编给大家带来了C#开发答题赢钱游戏,需要的朋友参考下吧
    2018-01-01
  • 深入C#中使用SqlDbType.Xml类型参数的使用详解

    深入C#中使用SqlDbType.Xml类型参数的使用详解

    本篇文章是对在C#中使用SqlDbType.Xml类型参数的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#实现写入与读出文本文件的实例代码

    C#实现写入与读出文本文件的实例代码

    本篇文章是对使用C#实现写入与读出文本文件的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#中利用断点操作调试程序的步骤详解

    C#中利用断点操作调试程序的步骤详解

    所谓断点调试就是检测执行路径和数据是否正确,中断游戏运行在线调试,下面这篇文章主要给大家介绍了关于C#中利用断点操作调试程序的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-12-12
  • 深入理解C#中的枚举

    深入理解C#中的枚举

    本篇文章主要是对C#中的枚举进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#使用CDO发送邮件的方法

    C#使用CDO发送邮件的方法

    这篇文章主要介绍了C#使用CDO发送邮件的方法,涉及C#使用Windows COM组件实现邮件发送的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 深入理解C#之继承

    深入理解C#之继承

    这篇文章主要介绍了c# 继承的相关资料,文中讲解的非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下,希望能给你带来帮助
    2021-07-07
  • C#中的char与string详解

    C#中的char与string详解

    本文详细讲解了C#中的char与string,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01

最新评论