java
protected Class<? extends Annotation> annotationClass;
.net
我想知道该怎么写这句话用.net

解决方案 »

  1.   

    这不就是继承吗?protected class annotationClass : Annotation
      

  2.   

    大哥,我都知道这段Java代码跟反射有关。你看好了,那不是class,是Class.....
      

  3.   

    定义一个字段protected Type annotationClass;annotationClass必须是继承自annotation,也就是.net中的attribute
      

  4.   

    那么请问怎么写这个继承呢?使之完全达到与Java代码相同的功能。
    现在这个Type类型的annotationClass可以被反射成任何类型,而Java代码进行了约束。.net中是否能进行这种约束?
      

  5.   


    C#不可能完全和Java匹配的。
    C#反射的几种常见方式:            Activator.CreateInstance(typeof(Form1));
                typeof(Form1).GetConstructor(new Type[] { }).Invoke(new object[] { });
                Assembly.LoadFile("").CreateInstance("");可以看出这几个方法返回的都是object类型。要达到类似Java的效果,可能就需要自己来写个扩展方法了。    public static class TestExtension
        {
            public static T NewInstance<T>(this Type t)
            {
                return (T)Activator.CreateInstance(t);
            }
        }    //Form1 f1 = typeof(Form1).NewInstance<Form1>();这样一来,返回值就受到约束了。