2010-05-11 71 views
2

是否有任何相當於混淆的語句,如:我可以在方法範圍內的C#或VB.NET中創建別名嗎?

// C#: 
using C = System.Console; 

或:

' VB.NET ' 
Imports C = System.Console 

...但法範圍內 - 而不是應用到整個文件?

+1

這將是一個用例這樣的別名?我想不出任何可能有用的情況。 – 2010-05-11 14:35:39

+0

0xA3:我會想象他可能希望動態重定向一個特定的方法來使用不同類的同名,而無需更改任何代碼。並不是說我必須贊同這樣的用法,但是如果不是完全直觀的話,它會/可能使這樣的任務變得更容易。 – 2010-05-11 14:39:33

回答

3

雖然這可能是矯枉過正,但您可以創建一個部分類,並只將您希望別名應用到的函數放置在具有別名的自己的文件中。

在主類文件:

/*Existing using statements*/ 

namespace YourNamespace 
{ 
    partial class Foo 
    { 

    } 
} 

在其他的文件:

/*Existing using statements*/ 
using C = System.Console; 

namespace YourNamespace 
{ 
    partial class Foo 
    { 
     void Bar() 
     { 
      C.WriteLine("baz"); 
     } 
    } 
} 
0

詳情請參閱herehere

實施例:

namespace PC 
{ 
    // Define an alias for the nested namespace. 
    using Project = PC.MyCompany.Project; 
    class A 
    { 
     void M() 
     { 
      // Use the alias 
      Project.MyClass mc = new Project.MyClass(); 
     } 
    } 
    namespace MyCompany 
    { 
     namespace Project 
     { 
      public class MyClass{} 
     } 
    } 
} 
2

使用一個對象引用將是合乎邏輯的方式。你正在通過使用靜態類來提出一些障礙。工作圍繞這樣的:

var c = Console.Out; 
    c.WriteLine("hello"); 
    c.WriteLine("world"); 

還是VB.NET With語句:

With Console.Out 
     .WriteLine("hello") 
     .WriteLine("world") 
    End With 
相關問題