最小化自定义函数的名称空间

时间:2009-03-21 05:42:28

标签: c# asp.net

我在CommonFunctions项目中有一个StringUtilities.cs文件,它包含一个UppercaseFirst函数,该函数将字符串中的第一个单词大写。目前在.aspx.cs中使用此函数的单独项目(在同一个解决方案中)使用 MyProject.CommonFunctions.StringUtilities.UppercaseFirst(“hello world”)调用;

是否可以将其缩短为 UppercaseFirst(“hello world”); ?可读性会好得多。

CommonFunctions项目中的StringUtilities.cs:

namespace MyProject.CommonFunctions
{
    public class StringUtilities
    {
        public static string UppercaseFirst(string s)
        {//blah code}
    }
}

Default.aspx.cs

using MyProject.CommonFunctions;
...
protected void Page_Load(object sender, EventArgs e)
{
     MyProject.CommonFunctions.StringUtilities.UppercaseFirst("hello world");
}

3 个答案:

答案 0 :(得分:3)

如果您使用的是c#3.0(.NET 3.5),则可以使用扩展方法:

namespace MyProject.CommonFunctions
{
    public static class StringUtilities
    {
        public static string UppercaseFirst(this string s)
        {//blah code}
    }
}

在适当的文件中设置您的使用后,您可以:

using MyProject.CommonFunctions;
...
protected void Page_Load(object sender, EventArgs e)
{
     "hello world".UppercaseFirst();
}

答案 1 :(得分:2)

您无法将其一直缩减为方法名称,但鉴于您已经拥有using MyProject.CommonFunction;行,您可以将其缩短为:

StringUtilities.UppercaseFirst("hello world");

答案 2 :(得分:2)

不在C#中; VB.NET(和C ++ / CLI)具有不同的查找规则。

在C#中,您可以使用using别名,如下所示:

using StrUtil = MyProject.CommonFunctions.StringUtilities;

这将允许你写

protected void Page_Load(object sender, EventArgs e)
{
     StrUtil.UppercaseFirst("hello world");
}

无论封闭的命名空间如何。