C# 是否有方法更改Visual Studio中IntelliSense中列出的构造函数的顺序?

C# 是否有方法更改Visual Studio中IntelliSense中列出的构造函数的顺序?,c#,.net,vb.net,visual-studio,intellisense,C#,.net,Vb.net,Visual Studio,Intellisense,我已经定义了一个具有多个构造函数的类,以便在实例化对象后,底层接口是不可变的。当用户在Visual Studio中键入以下内容时,我希望其中一个构造函数成为“默认”构造函数: var obj = new MyClass( Dim obj As New MyClass( 当前,当我去实例化对象时,构造函数没有按照我在类中声明的顺序列出(在Visual Studio IntelliSense中)。有没有一种方法可以标记我的构造函数,以便它们的方法在Visual Studio IntelliSen

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

var obj = new MyClass(

Dim obj As New MyClass(

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

没有一种方法可以控制Visual Studio IntelliSense中的顺序。如果您确实有多个构造函数(或方法),那么就intellisense而言,您唯一真正的控制就是使用
EditorBrowsable
和适当的。这允许您在intellisense中隐藏构造函数(或方法),或仅在“高级”模式下显示,但不允许您对其重新排序


然而,在这种情况下,如果您的目标是.NET4,我建议您考虑使用一个构造函数,并充分利用它。

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

社论:我很确定VB.NET会按照构造函数在类声明中的出现顺序对其进行排序


你必须记住,智能感知不是语言的特征,而是编辑器的特征。由于可以使用其他编辑器编写代码,因此该语言中不会内置特定于IDE的特性。为了编写代码而编写代码是不恰当的。

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

ComponentModel.EditorBrowsable(ComponentModel.EditorBrowsableState.Advanced)

ComponentModel.EditorBrowsable(ComponentModel.EditorBrowsableState.Never)

您可以始终使用工厂模型,并为每个方法保护构造函数。不过我更喜欢里德·科佩。但是,如果.NET 4.0不是一个选项,这可能是一个替代方案。

关于使用命名参数和可选参数的好建议。因此,我能够将构造函数的数量从4个减少到2个。这是一个很好的建议,但由于某些原因,这似乎对构造函数不起作用。