我一直在运行StyleCop而不是一些C#代码,并且它一直报告我的using
指令应该在命名空间内.
是否存在将using
指令放入命名空间而不是命名空间外的技术原因?
在C#中是否有typedef等价物,或者某种类似的行为?我做了一些谷歌搜索,但我看到的每个地方似乎都是负面的.目前我的情况类似于以下情况:
class GenericClass<T>
{
public event EventHandler<EventData> MyEvent;
public class EventData : EventArgs { /* snip */ }
// ... snip
}
Run Code Online (Sandbox Code Playgroud)
现在,当试图为该事件实现处理程序时,并不需要火箭科学家弄清楚这会很快导致大量输入(为可怕的双关语道歉).它最终会像这样:
GenericClass<int> gcInt = new GenericClass<int>;
gcInt.MyEvent += new EventHandler<GenericClass<int>.EventData>(gcInt_MyEvent);
// ...
private void gcInt_MyEvent(object sender, GenericClass<int>.EventData e)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
除了在我的情况下,我已经使用了复杂类型,而不仅仅是一个int.如果有可能简化这一点,那就太好了......
编辑:即.也许键入定义EventHandler而不是需要重新定义它以获得类似的行为.
我是 C# 新手,并且习惯了 Swift,所以请耐心等待。
我想完全按照下面 Swift 代码描述的方式使用 C# 中的类型:
typealias Answer = (title: String, isCorrect: Bool)
typealias Question = (Question: String, Answers: [Answer])
Run Code Online (Sandbox Code Playgroud)
对于进一步的例子,现在使用上面的方法Question
快速创建 a 是非常简单的:typealias
Question(Question: "What is this question?", Answers: [("A typedef", false), ("FooBar", false), ("I don't know", false), ("A Question!", true)])
Run Code Online (Sandbox Code Playgroud)
using
到目前为止,我已经尝试使用语句并创建抽象类,但没有成功。
提前致谢。
例如在我的代码中我想要MyUser
别名Dictionary<string,string>
我试过
Type MyUser =typeof(Dictionnary<string,string>);
MyUser user;
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
感谢您的关注。