的簽名,我有一些代表:能夠執行靜態類的方法遵循一個代表
public class StringDelegates
{
public delegate string StringMethod(object container);
}
public class IntegerDelegates
{
public delegate int IntegerMethod(object container);
}
public class DoubleDelegates
{
public delegate double DoubleMethod(object container);
}
,我有包含遵循此委託簽名方法的一些靜態類:
public static class StringGenerators
{
public static string FirstName(object container)
{
return Name.GetFirstName((string)container);
}
public static string LastName(object container)
{
return Name.GetLastName();
}
}
public static class IntegerGenerators
{
public static int Range(object container)
{
string[] args = (string[])container;
int min = Convert.ToInt32(args[0]);
int max = Convert.ToInt32(args[1]);
return RandomGenerator.GetRandomInt(min, max);
}
}
我的問題:有沒有辦法強制這些類實現遵守委託簽名的方法?
在編譯時?不。你可以很容易地編寫單元測試。 –
@JonSkeet這太糟糕了,編譯時沒有辦法。我想單元測試的想法就足夠了,你可能有任何鏈接/例子,我可以看看?隨意提交作爲一個答案,我可以接受它 –
@TalenKylon如果'StringGenerators'等不是靜態類,你可以寫接口。然後,也許給每個人一個單身人士的實例。例如。 'StringGenerators'會有'private static StringGenerators _instance = new StringGenerators();公共靜態StringGenerators實例{獲得{返回_實例; }}'使構造函數私有。遠非理想。 –