2009-03-21 8 views
0

J'ai un fichier StringUtilities.cs dans le projet CommonFunctions qui contient une fonction majuscule qui majuscules le premier mot d'une chaîne. Actuellement dans le .aspx.cs dans un projet distinct (dans la même solution) qui utilise cette fonction est appelée en utilisant MyProject.CommonFunctions.StringUtilities.UppercaseFirst ("hello world");Minimisation des espaces de noms pour les fonctions personnalisées

Est-il possible de le raccourcir à seulement UppercaseFirst ("hello world");? La lisibilité sera tellement meilleure.

StringUtilities.cs dans le projet CommonFunctions:

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"); 
} 

Répondre

2

Vous ne pouvez pas couper tout le chemin vers le bas juste le nom de la méthode, mais étant donné que vous avez déjà la ligne using MyProject.CommonFunction; en place, vous pouvez réduire à: Non

StringUtilities.UppercaseFirst("hello world"); 
2

dans C#; VB.NET (et C++/CLI) ont des règles de recherche différentes.

En C#, vous pouvez utiliser un alias using comme suit:

using StrUtil = MyProject.CommonFunctions.StringUtilities; 

qui vous permettra de puis écrire

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

quel que soit l'espace de noms englobante.

3

Si vous utilisez C# 3.0 (.NET 3.5), vous pouvez utiliser des méthodes d'extension:

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

Une fois que vous définissez votre usings dans le fichier approprié, vous pouvez ensuite:

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