是否可以在方法中使用库但不在方法之外?

时间:2014-06-20 17:44:11

标签: c#

例如:

private void MethodName()
{
    Using System.OI;
}

我只需要这个方法中的这个库。我有什么方法可以做到这一点吗?

我没有把它放在首位的原因是它产生了模糊的引用。

4 个答案:

答案 0 :(得分:8)

使用给定类型时,根本不需要使用using语句。如果要使用类型:

,只需使用完全限定名称即可
var lines = System.IO.File.ReadLines("temp.txt");

using语句只是语法糖,以避免每次使用某种类型时都需要这样做。

答案 1 :(得分:1)

使用partial classes。为同一个类创建两个源文件,一个导入System.IO(并包含您的特殊方法),另一个不导入(并包含所有剩余的方法)。

using System.IO;

public partial class MyClass
{
    private void MethodName()
    {
         ...
    }
}

答案 2 :(得分:0)

来自MSDN的这一行让我怀疑不是:

  

using指令的范围仅限于它出现的文件。

请注意,它并没有说范围。但是,您始终可以引用没有using指令的对象:

public void MyMethod()
{
    System.IO.StreamWriter myWriter;
}

部分阶级的想法是另一个解决问题的聪明方法。这是我参考的文档:MSDN

答案 3 :(得分:0)

虽然大多数答案都是关于避免using语句和完全限定类型名称,但我想对此进行评论:

  
    

我只需要这个方法中的这个库。我有什么方法可以做到这一点吗?

  

在.Net中,添加using或添加对库的引用并不意味着将加载此库。库正在运行时加载到应用程序域,然后才真正使用它。

因此,在文件中添加使用不会伤害任何人;如果需要,执行特定方法将加载必要的库。

在应用程序域中加载库后 - 它将永远不会被卸载。

所以很可能 - 你不需要你要求的东西,只要在名称冲突的情况下使用文件级别或命名空间别名。