簡體   English   中英

您可以在類型上而不是在類型實例上使用擴展方法嗎?

[英]Can you have an extension method on a type instead of on an instance of a type?

我可以有一個這樣的擴展方法:

DateTime d = new DateTime();
d = d.GetRandomDate();

GetRandomDate是我的擴展方法。 但是,上面沒有多大意義。 更好的是:

DateTime d = DateTime.GetRandomDate();

但是,我不知道該怎么做。 擴展方法創建為:

public static DateTime GetRandomDate(this System.DateTime dt)

只會在上面的第一個示例中添加GetRandomDate(),而不是第二個示例。 有沒有辦法實現預期的行為?

否-不可能

您需要在自己的靜態類上訪問該方法...

你為什么要 如果要調用靜態方法,為什么不直接調用它呢?

好的,您將需要使用類似DateTimeHelper.GetRandomDate()東西來代替DateTime.GetRandomDate()

只是把它扔在那里,但是您可以創建日期時間的局部靜態類並在上面拋出擴展方法嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM