惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
月光博客
月光博客
人人都是产品经理
人人都是产品经理
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence
Vercel News
Vercel News
MyScale Blog
MyScale Blog
爱范儿
爱范儿
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
H
Help Net Security
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
博客园 - 叶小钗
D
Docker

博客园 - Net205 Blog

我第1个可用的golang小程序 我们怎么做不到呢? Top 7 Coding Standards & Guideline Documents For C#/.NET Developers .Net开发人员必须避免的5个常见的编程错误 You are doing Scrum but the Scrum Master tells the team what to do! Asp.net Mvc中使用HTML 5 data属性 使用Javascript制作一个始终可见的区域 阅读优秀代码是提高开发人员修为的一种捷径[收藏] SQL SERVER – Difference between COUNT(DISTINCT) vs COUNT(ALL) SQL Performance MSSQL删除重复数据 jQuery QUnit 万月薪的英语人是如何练成的!!!讲一口漂亮流利的英语[转] 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 asp.net Interview Questions - Net205 Blog jQuery资源 strip invalid xml characters - Net205 Blog 翻译工具,您选哪个?
使用扩展方法
Net205 Blog · 2011-05-01 · via 博客园 - Net205 Blog

 来自:http://www.dotnetbips.com/articles/dfeb8a51-4b3b-4bc6-aab9-28ac774b1e8c.aspx

比如想使用以下代码显示印度格式的时间(Indian Standard Time:IST):

DateTime dt=DateTime.Now;
DateTime utc
= dt.ToUniversalTime();
DateTime ist
= utc.AddMinutes(330);

使用下面2个扩展方法(注意:要用静态类、静态方法还参数中的this):

namespace Utils
{
public static class DateTimeHelper
{
public static DateTime ToIST(this DateTime dt)
{
DateTime utc
= dt.ToUniversalTime();
return utc.AddMinutes(330);
}
public static bool IsDate(this string s)
{
DateTime dt;
return DateTime.TryParse(s, out dt);
}
}
}

这样引用此命名空间后就可以使用扩展方法了:

注意:

  1. Extension methods can chain themselves. For example you may write something like this: dt.ToIST().ToDDMMYYYY()
    The ToIST() and ToDDMMYYYY() are assumed to be extension methods.
  2. Extension methods can be accessed only when its namespace is in scope
  3. If an extension method has the same signature as any of the instance method of the class it extends then the instance methods take precedence
  4. If two extension methods of a type have same signature them they must be called like normal static methods. For example, if you define two extension methods with same name and signature in two classes say DateTimeHelper1 and dateTimeHelper2, then they can be called  like this - DateTimeHelper1.ToIST(dt)

更多,更全的扩展方法文章:
http://www.cnblogs.com/ldp615/archive/2009/08/07/1541404.html