c# - 如何正确设置我的通用 C# 代码,以便我可以使用 using 指令访问它们?
问题描述
我希望能够组织我最常见的代码元素,以便可以使用类似于以下的 using 语句“包含”它们
using System;
using System.IO;
我可以在一定程度上做到这一点,但是由于 C# 关于命名空间和类的规则,我无法直接访问我的东西,我总是必须将它添加到一个类中,然后通过 .item 访问它。
例如,如果我创建一个名为 MyStuff.cs 的 C# 文件,如下所示:
namespace MyStuff
{
public static class MyClass
{
public static int MyCode(...)
{
...
}
}
}
我必须在我的其他代码中使用它,如下所示:
using MyStuff
...
int result = MyClass.MyCode(...);
...
我希望能够像这样访问它(没有 MyClass):
using MyStuff
...
int result = MyCode(...);
...
但我无法让它发挥作用。我在某处读到将“静态”添加到它们所在的类中,然后不需要点符号,但这似乎不是真的。
任何人都可以解释如何做到这一点,还是我坚持额外的层?
谢谢!
解决方案
我不认为它可以做到。
为了从命名空间中直接访问某些东西,它必须是一个对象。函数不能直接放在命名空间内。
您可以通过为“对象”类的实例编写扩展方法来使用扩展方法来实现您想要的(这更像是一种黑客行为)。但是您仍然必须以这种方式调用它,this.MyCode()。
另一个解决方案是有一个超类,你有这个函数 MyCode() 并从那里继承你要使用 MyCode() 的地方,但我很确定你已经考虑过一些基本的东西。
推荐阅读
- javascript - 为什么 Gulp 会不一致地生成文件?
- javascript - html表使用javascript动态添加和删除行
- javascript - 在 HTML Canvas 中使用 mousemove 上的图像平滑绘制
- google-chrome - 安装特定版本的 google-chrome CentOS 7
- c++ - 这个数组的什么在堆栈或堆上?
- php - PHP & MQTT - 在同一功能中发布和订阅
- c# - 不支持集合类型“Newtonsoft.Json.Linq.JObject”
- c# - ASP.NET Web 应用程序中的 SmtpClient 问题
- c# - C# Winforms如何获取CheckedListBox的详细信息?
- wagtail - 为什么找不到我的 PASSWORD_REQUIRED_TEMPLATE,但找到了我对 login.html 的直接覆盖?