有没有办法在Visual Studio中更改IntelliSense中列出的构造函数的顺序?

我已经定义了一个具有多个构造函数的类,以便在实例化对象后底层接口是不可变的。 我希望其中一个构造函数成为用户在Visual Studio中键入以下内容时的“默认”构造函数:

var obj = new MyClass( Dim obj As New MyClass( 

目前,当我去实例化对象时,构造函数没有按照我在类中声明的顺序列出(在Visual Studio IntelliSense中)。 有没有办法标记我的构造函数,以便它们的方法在Visual Studio IntelliSense实例化期间以特定顺序出现?

没有办法控制Visual Studio的Intellisense中的排序。 如果你有多个构造函数(或方法),那么就智能感知而言你唯一真正的控制就是使用带有相应EditorBrowsableState的EditorBrowsable 。 这允许您在intellisense中隐藏构造函数(或方法),或仅在“高级”模式下显示它,但不允许您重新排序它们。

但是,在这种情况下,如果您的目标是.NET 4,我建议考虑使用单个构造函数,并利用命名和可选参数 。

这是一个有趣的问题,但我还没有听说过这种能力。 一种选择是将其他构造函数标记为高级或隐藏。

ComponentModel.EditorBrowsable( ComponentModel.EditorBrowsableState.Advanced ) ComponentModel.EditorBrowsable( ComponentModel.EditorBrowsableState.Never )

我很确定你所要求的是不可能的。 最好的做法是使用XML注释标记构造函数,这些注释将用于填充VS中的intellisense。 这将为用户提供有关哪些构造函数是默认的详细intellisense等。

编辑:我很确定VB.NET按照它们在类声明中的顺序命令构造函数。

你必须记住,Intellisense不是语言的一个特征,而是编辑器的特征。 您将没有特定于该语言内置的IDE的function,因为其他编辑器可用于编写代码。 为编写代码而编写代码是不合适的。

您始终可以使用Factory模型并为每个方法保护构造函数。 但是我更喜欢Reed Copsey的回答 。 但是,如果.NET 4.0不是一个选项,那么这可能是另一种选择。