C# 要求在C语言中存在静态方法#
给定一组具有支持给定域逻辑的公共属性和方法集的对象,是否有方法在这些对象上强制存在某些静态方法 我已经得出结论,实现接口并不能实现这一点(方法只是实例),静态方法不能被标记为覆盖、虚拟或抽象 提前谢谢。不 (注意:在F#中,您可以使用“内联”函数和“^”类型(例如,对于所有类型T,T有一个返回“int”的静态方法ToInt(T))。编译器有效地将每个调用站点自动扩展到特定类型。)否C# 要求在C语言中存在静态方法#,c#,generics,static,methods,constraints,C#,Generics,Static,Methods,Constraints,给定一组具有支持给定域逻辑的公共属性和方法集的对象,是否有方法在这些对象上强制存在某些静态方法 我已经得出结论,实现接口并不能实现这一点(方法只是实例),静态方法不能被标记为覆盖、虚拟或抽象 提前谢谢。不 (注意:在F#中,您可以使用“内联”函数和“^”类型(例如,对于所有类型T,T有一个返回“int”的静态方法ToInt(T))。编译器有效地将每个调用站点自动扩展到特定类型。)否 (注意:在F#中,您可以使用“内联”函数和“^”类型(例如,对于所有类型T,其中T有一个返回“int”的静态方法T
(注意:在F#中,您可以使用“内联”函数和“^”类型(例如,对于所有类型T,其中T有一个返回“int”的静态方法ToInt(T))。编译器有效地将每个调用站点自动扩展到特定类型。)强制类型具有静态成员的唯一方法是从它继承。所有类型都将具有静态成员,如果需要在派生类型上重写它们,可以使用“new”关键字:
它与抽象/重写并不完全相同,但从使用者的角度来看,其工作原理类似。强制类型具有静态成员的唯一方法是从它继承。所有类型都将具有静态成员,如果需要在派生类型上重写它们,可以使用“new”关键字: 它与抽象/重写并不完全相同,但从消费者的角度来看,它的工作原理类似
static void Main(string[] args)
{
Console.WriteLine(Base.Hello());
Console.WriteLine(Derived.Hello());
Console.Read();
/* output will be:
Hello
World
*/
}
public class Base
{
public static object Hello()
{
return "Hello";
}
}
public class Derived : Base
{
public static new object Hello()
{
return "World";
}
}