【发布时间】:2017-12-22 01:03:43
【问题描述】:
假设我有一个辅助类,如下所示:
namespace MyNamespace
{
public class DataHelpers
{
public string SysnamePath ( string db , string schema , string table )
{
return "[" + db + "].[" + schema + "].[" + table + "]";
}
}
}
我怎样才能重写它或者我可以做些什么来使它不必继续输入完全限定的名称......
string dbpath = DataHelpers.SysnamePath(...);
我不希望它成为扩展方法,或者我不明白这有什么帮助,我不想将该方法粘贴到调用者所在的同一页面中。
我可能不懂一些基本的东西,因为我正在自学。我的理解是该方法必须在一个类中。我只是不想输入那个类名。
就像我说的,我确信这是基本的东西。
【问题讨论】:
-
通常辅助方法是
static,这意味着您不必为了使用它们而实例化一个类(如Console.WriteLine())。除此之外,根据我的经验,大多数开发人员写出类名而不是用using语句隐藏它。大概是为了更具可读性/可理解性的代码。当你最终有一些其他Helpers类也有一个SysnamePath方法时,它也变得很有必要,因为那时你将不得不做一些额外的输入来区分它们。 -
@Rufus,非常感谢。我听说过使用“帮助类”这个术语,但我一直将我的静态扩展方法称为扩展方法,将我用来减少击键的方法称为“帮助类”。我得查一下。不过,这很可能是一个静态方法(如果我也将类设为静态),对吧?
-
@RufusL 没关系,下面的答案回答了我的问题。
-
该方法可以是静态的。例如
string类不是静态的,但它有静态方法,如Compare、Concat、Format等。如果类只包含静态方法和属性,也可以设为静态。 -
哇哦。好的,我认为由于静态类只能包含静态方法,因此静态方法必须在静态类中。这是一个令人兴奋的时刻。我现在不需要在我的类库中将这些全部分开。
标签: c# class code-readability