小编kae*_*aem的帖子

接口/基类中的C#枚举?

我有枚举的问题

我需要在基类或接口中创建一个枚举(但是空的)

class Base 
{
   public enum Test;
   // ???
}
Run Code Online (Sandbox Code Playgroud)

并在一些父类中创建不同的枚举之后

class Parent1
{
   public enum Test {A, B, C};
}

class Parent2
{
   public enum Test {J, H, K};
}
Run Code Online (Sandbox Code Playgroud)

现在,当我必须使用枚举时,我有下一节课的方法

class Test<T>
{
   public void Foo(Test enum)
   {
      int value = (int) enum;
      // ...
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做那样的事情?

如果不是,我必须在每个班级使用静态内联...

class Parent1
{
   public static int A = 0;
   public static int B = 5;
   public static int C = 7;
}

class Parent2
{
   public static int …
Run Code Online (Sandbox Code Playgroud)

c# virtual enums parent

12
推荐指数
2
解决办法
4万
查看次数

C#子类返回未知类型(进一步:来自父级)

我有接口:

public interface Inx<T>
{
   T Set(Data data);
}
Run Code Online (Sandbox Code Playgroud)

用这个方法简单的类

public class Base
{
   ??? Set(Data data) { ... }
}
Run Code Online (Sandbox Code Playgroud)

和那样的父类:

public class Parent : Base, Inx<Parent>
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

我想从子类中的Set metod返回父类型这可能吗?我需要这样做:

list.Add(new Parent().Set(data));
Run Code Online (Sandbox Code Playgroud)

现在我必须这样做:

T t = new T();
t.Set(data);
list.Add(t);
Run Code Online (Sandbox Code Playgroud)

它有点烦人,我必须多次使用它


抱歉spam好嗯我可以使用类似的东西:

this.GetType().GetConstructor(new System.Type[] { typeof(Data) }).Invoke(new object[] { data })
Run Code Online (Sandbox Code Playgroud)

所以也许好的解决方案是从这个方法返回一个对象; \?

通用接口的通用类似乎是大内存浪费...这个类的beacose函数是相同的只返回类型是不同的

c# types return parent

2
推荐指数
1
解决办法
1958
查看次数

标签 统计

c# ×2

parent ×2

enums ×1

return ×1

types ×1

virtual ×1