我有許多類表示業務事務調用的類:執行適當的存儲過程。在C#中編寫靜態和非靜態方法時,如何避免「調用不明確...」錯誤?
現在這個樣子的:
public static class Request
{
public static void Approve(..) {
using(connection) {
command.Text = "EXEC [Approve] ,,"]
command.ExecuteNonQuery();
}
}
}
我想給他們更多的線程安全:
public class Request {
public static void Approve(..) {
new Request().Approve(..);
}
internal void Approve(..) {
using(connection) {
command.Text = "EXEC [Approve] ,,"]
command.ExecuteNonQuery();
}
}
}
但是,讓下一個錯誤信息:
電話是 以下方法或屬性之間不明確: 'MyNamespace.Request.Approve(..)'和 「MyNamespace.Request.Approve(..)」
我怎麼能強迫,標誌是我打電話非靜態,從靜態實例方法?
或者我不能這樣做,而不重命名的方法之一?或者將靜態方法移動到另一個類中,等等。
您可能會對某些涉及C#中實例方法的靜態方法消歧的設計決策感興趣。規則看起來有點奇怪,但實際上他們是精心設計的。這是我最近在這方面寫的一篇文章:http://blogs.msdn.com/ericlippert/archive/2009/07/06/color-color.aspx – 2009-10-12 22:19:03
@Eric Lippert Hello,Eric。非常感謝鏈接!我收到了很多新的信息。順便說一句我正在讀你的博客(蓋達爾的俄文翻譯) – abatishchev 2009-10-13 18:19:50