我在webservice中有一个复杂的事件args类
public partial class PROJECT.WCF.MyActionCompletedEventArgs
{
...
};
现在我有一个以某种方式包装此Web服务的类
public class WebserviceCtrl
{
...
现在我想添加自己的处理程序,其中已经定义了相同的事件args。所以我想在类中使用using
别名(比如C ++中的typedef
),如下所示:
public class WebserviceCtrl
{
using ActionCompletedEventArgs = PROJECT.WCF.MyActionCompletedEventArgs;
...
但是我直接在using语句前面遇到语法错误。我可以直接在类声明前面使用这个using语句(在命名空间内)。将此语句放在类定义中的位置并不重要。
我知道声明我自己的ActionCompletedEventArgs
类的可能性,但在这种情况下,我必须提供特定的构造函数,并强迫我编写不需要的特定构造函数" ,如果我只是使用别名......
所以我不想申报自己的班级!
我已经使用文档研究过C#,但我可以找到有关此内容的任何信息。
我的问题是,为什么我不能在课堂上使用classx = classy;
?
答案 0 :(得分:1)
别名仅适用于当前文件(或当前文件中的当前命名空间范围),并且它们在编译输出中不存在。就像其他使用“包含”命名空间的语句一样。
没有理由将它们放在其他地方,只会让代码更难阅读。
答案 1 :(得分:0)
考虑使用类似的通用类:
public class WebserviceCtrl<T> where T : MyActionCompletedEventArgs
您尝试执行此操作的方式不支持您,但如果您尝试引用变量类,则泛型是如何在C#中完成的。