别名无法使用 - 你可以为命名空间或类型创建别名,但不能为类型的属性创建别名。所以这样是有效的:
using NL = System.Environment;
class Program
{
static void Main(string[] args)
{
var s = NL.NewLine;
}
}
但这不行:
using NL = System.Environment.NewLine;
重载运算符是一个有趣的想法,但是你将不得不使用除了String
之外的其他东西。通常人们会创建一个struct
,它可以接受一个基本字符串值,然后重载运算符。如果你只想替换Environment.NewLine
,那么这并不值得付出这样的代价。最好像其他人建议的那样使用静态扩展。
另一种选择(如果你非要使用NL
)是让你框架中的所有类都继承自一个共同的父类,该父类可以具有以下属性:
public class BaseParentClass
{
public string NL
{
get { return System.Environment.NewLine; }
}
}
然后在所有子类的代码中,你的代码将会简单地如下所示:
public class ChildOfBaseParent
{
public void Show_A_Message()
{
MessageBox.Show("My first line here" + NL + "My second line here");
}
}
当然,如果您的类没有共同的父类,您将不得不为了方便起见重构代码。您需要为WinForm类创建一个平行的System.Windows.Forms.Form父类以获得相同的行为。
但是,如果您有许多涉及NL的字符串连接,则绝对值得付出这种代价...
Environment.NewLine
分配给它呢? - Arseni Mourzenko