Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在VisualStudio2010中创建新属性时,为什么Visual Basic IDE停止填充属性的其余部分?_Vb.net_Visual Studio 2010_Templates_Properties - Fatal编程技术网

Vb.net 在VisualStudio2010中创建新属性时,为什么Visual Basic IDE停止填充属性的其余部分?

Vb.net 在VisualStudio2010中创建新属性时,为什么Visual Basic IDE停止填充属性的其余部分?,vb.net,visual-studio-2010,templates,properties,Vb.net,Visual Studio 2010,Templates,Properties,出于某种原因,当我在Visual Studio 2010中的Visual Basic.NET中创建新属性时,该属性的其余部分(模板?)没有在代码编辑器中完成该属性的基本框架。它现在对待这样一种说法: Public Property Length() As Integer 它没有像以前那样完成属性(代码如下),而是直接转到下一行: Public Property Length() As Integer Get End Get Set(ByVal value As Int

出于某种原因,当我在Visual Studio 2010中的Visual Basic.NET中创建新属性时,该属性的其余部分(模板?)没有在代码编辑器中完成该属性的基本框架。它现在对待这样一种说法:

Public Property Length() As Integer
它没有像以前那样完成属性(代码如下),而是直接转到下一行:

Public Property Length() As Integer
    Get

    End Get
    Set(ByVal value As Integer)

    End Set
End Property
现在发生的情况是,如果我键入“End Property”代码,属性的名称现在将作为错误突出显示,因为它没有“Get”或“Set”部分

但是,当我在“publicproperty Length()As Integer”后面的行中键入“Get”时,属性的余额将在代码中自动创建

我不知道这是怎么改变的,但我很想把它改回来

有人知道VS2010中是否有解决此问题的设置,或者它是否与visual studio用于创建基本代码组件的基本模板有关

奇怪的是,对于其他一切,从类声明、结构、函数和子类,IDE仍然正确地创建代码结构的平衡。唯一不需要的地方是属性声明

提前感谢您的帮助

凯文

VB.NET第10版已经发布

对于简单属性(仅获取/设置字段值而不获取其他值的属性),这些属性允许您省略获取/设置部分和字段(它们确实是由编译器生成的)。

VB.NET版本10提供了

对于简单属性(仅获取/设置字段值而不获取其他值的属性)而言,这些属性允许您省略获取/设置部分和字段(它们确实由编译器生成)。

这是因为VB 10现在允许您仅具有:

Public Property Length() As Integer
它将自动实现为:

Private _length As Integer
Public Property Length() As Integer
    Get
        Return _length
    End Get
    Set(ByVal value As Integer)
        _length = value
    End
End Property
这与C#的语法相同,允许您具有:

public int Length { get; set; }
因此,从IDE的角度来看,不需要生成所有这些代码,因为编译器本质上就是执行这些操作的人

当然,这并不总是可取的。实际上,您常常希望自己实现一个属性,而不必做样板部分。这就是我认为你提出这个问题的原因

我相信,在使用代码片段之后,您仍然可以完成您的任务。VisualStudio有很多这样的功能。最后我检查了一下,输入“Prop”并点击tab仍然可以创建上面所有的样板文件。这一点我可能错了(目前不是在Windows机器上);但是,即使我是,您也应该能够创建自己的代码片段来生成所需的样板文件

回到你的问题“为什么?”然而:我认为IDE团队在这里做出了正确的选择。鉴于VB10确实支持自动实现的属性(无论是好是坏),如果开发人员每次想要一个自动实现的属性,IDE都会自动生成大量的样板文件,然后需要删除这些样板文件,那么他们会非常沮丧。换一种方式,虽然可能会很烦人,但似乎更合理(特别是考虑到我已经提到的代码段选项)。

这是因为VB 10现在只允许您拥有:

Public Property Length() As Integer
它将自动实现为:

Private _length As Integer
Public Property Length() As Integer
    Get
        Return _length
    End Get
    Set(ByVal value As Integer)
        _length = value
    End
End Property
这与C#的语法相同,允许您具有:

public int Length { get; set; }
因此,从IDE的角度来看,不需要生成所有这些代码,因为编译器本质上就是执行这些操作的人

当然,这并不总是可取的。实际上,您常常希望自己实现一个属性,而不必做样板部分。这就是我认为你提出这个问题的原因

我相信,在使用代码片段之后,您仍然可以完成您的任务。VisualStudio有很多这样的功能。最后我检查了一下,输入“Prop”并点击tab仍然可以创建上面所有的样板文件。这一点我可能错了(目前不是在Windows机器上);但是,即使我是,您也应该能够创建自己的代码片段来生成所需的样板文件


回到你的问题“为什么?”然而:我认为IDE团队在这里做出了正确的选择。鉴于VB10确实支持自动实现的属性(无论是好是坏),如果开发人员每次想要一个自动实现的属性,IDE都会自动生成大量的样板文件,然后需要删除这些样板文件,那么他们会非常沮丧。换一种方式,虽然可能会很烦人,但似乎更合理(特别是考虑到我已经提到的代码段选项)。

键入“prop”并按Tab键两次。这将实现属性的代码段。明白了!:-)也谢谢。键入“prop”并按Tab键两次。这将实现属性的代码段。明白了!:-)也谢谢,非常感谢!我不知道VS2010中Visual Basic中语言元素的这种变化。你的答案(尤其是MSDN条目的链接)正是我需要知道的。再次感谢,非常感谢!我不知道VS2010中Visual Basic中语言元素的这种变化。你的答案(尤其是MSDN条目的链接)正是我需要知道的。再次感谢。我完全同意您的说法,IDE团队为实现这一点做出了正确的选择。我只是不知道IDE中的概念和具体变化。MSDN上列出了一个很好的“修复”(不确定我是否应该这样称呼),即在声明之后立即开始在行中键入“G”,然后点击,将生成样板文件的其余部分。也谢谢你的反馈。我真的很感激。我完全同意你的说法,IDE团队为实现这一点做出了正确的选择。我只是不知道IDE中的概念和具体变化。一个很好的“修复”(我不确定我是否