c# / c++ -命名空间下的方法
C# / C++ - Methods under namespace
假设我有一个命名为ExitCodes
的enum。我还想要一个叫做ErrorCodes.Quit
的方法。在c++中,可以将方法放在命名空间下,而在c#中则不能。因此,在c++中,可以在命名空间ExitCodes
下同时拥有枚举和方法,但在c#中,您受到限制。关于这些差异,我想问两个问题。
-
在c#中有解决这个问题的方法吗?我能达到同样的效果吗?我知道我可以使类非静态,使构造函数私有,然后用值和静态方法Quit来破坏ExitCodes的静态实例,但这太费事了。
-
我希望能够使自定义类型,就像它是在c++。例如,在c++中我可以这样做:
using exit_code_t = int;
我怀疑这在c#中是可能的,但为什么不在这里问呢。
在c#中有解决这个问题的方法吗?
是的,把方法(如果你愿意,还有Enum)放在一个类中,而不是一个命名空间中。语法上看起来是一样的:
public class ExitCodes
{
public enum ExitCodes
{
...
}
public static void Quit()
{
...
}
}
现在可以使用ExitCodes.ExitCodes
和ExitCodes.Quit()
;
我想能够自定义类型,就像它在c++
在c++中只是给int
类型一个别名。您可以在c#中做同样的事情,但您必须使用实际的类型名称,而不是int
关键字:
using System;
using MyInt = System.Int32;
public class Test
{
public static void Main()
{
// your code goes here
Console.WriteLine(typeof(MyInt).ToString()); // will print System.Int32
}
}
c#的一个不同之处在于别名只适用于当前文件。所以它的和c++的别名/typedef
不完全一样但是它和你能得到的最接近了
相关文章:
- 如何通过命名空间调用非静态方法
- 转发声明在命名空间中不起作用的替代方法
- 使用 GMock 的具有命名空间的模拟方法
- 在方法定义中显式指定命名空间
- 使用类指针重载C++命名空间函数模板专用化替代方法?
- C++详细介绍命名空间 vs 匿名 vs 私有方法到类 vs. pimpl vs. 朋友类
- 是否有一个很好的方法可以在C 11中打印出像JSON一样的Trie结构(仅迭代解决方案)的扁平命名空间
- 从类方法调用命名空间中名为 Same 的函数时,重载解析失败
- 为在与类方法中的类相同的命名空间中定义的结构调用重载运算符
- 有没有一种方法可以创建具有广义属性的命名空间
- 当类方法不进行时,为什么从标头文件中的独立方法需要为命名空间资格
- 是否可以编写一个C .dll库来导出在命名空间和类中编写的方法
- 在不膨胀命名空间的情况下在C++中声明枚举的好方法
- Visual Studio c++如何找到给定类/方法的包含命名空间
- 在单步执行 std::function 调用时,如何跳过 std 命名空间中的方法调用?(使用 GDB
- 如何将类的静态方法引入命名空间
- 内联类方法,用于调用其他文件的 anon 命名空间中的函数
- 来自命名空间的方法链接
- 使用命名空间标准与其他替代方法
- 为命名空间中的类专用化方法模板