CodeAttribute2.Value 屬性
設定或取得程式碼屬性的資料。
命名空間: EnvDTE80
組件: EnvDTE80 (在 EnvDTE80.dll 中)
語法
'宣告
Property Value As String
string Value { get; set; }
property String^ Value {
String^ get ();
void set (String^ value);
}
abstract Value : string with get, set
function get Value () : String
function set Value (value : String)
屬性值
型別:System.String
字串值,表示程式碼屬性的資料。
備註
如果屬性的形式為 name(someval, 2),則該值為 someval, 2。
注意事項 |
---|
在經由 Visual Studio 指派之後,程式碼屬性引數值便不會繼續保留在記憶體中,所以當更新程式碼屬性引數時,這些值便可能為有效或無效。也就是說,接下來的引數存取或許會傳回 E_FAIL 或是完全不同的值 (然而,任何會影響這個項目之子系的因素,都不會有這個問題)。 由於這種非決定性的行為,所以您應該先擷取這個引數的值之後再進行變更的動作。例如,如果您在程式碼中設定程式碼屬性引數 (例如 myAttrArg.Value = """a first value"""),則必須在明確參考這個引數之後,才能進行更新的動作 (myAttrArg = myAttr.Arguments.Item("first value")),接著指派新的值 (myAttrArg.Value = """a second value""")。這麼做便可以確定這個正確的引數已經遭到變更。 另外像是類別、建構、函式、屬性 (Attribute)、委派 (Delegate) 等這些程式碼模型元素的值,在經過特定方式的編輯之後也可以為非決定性,即表示這些值將不再固定。如需詳細資訊,請參閱使用程式碼模型探索程式碼 (Visual Basic) 的<程式碼模型項目值可以變更>一節。 |
範例
下列範例會在目前的類別中建立新的命名空間和屬性,並列出屬性 (Attribute) 的部分屬性 (Property)。
Sub ValueExample(ByVal dte As DTE2)
' Before running this example, open a code document from a project
' and place the insertion point inside a class definition.
Try
' Retrieve the CodeClass at the insertion point.
Dim sel As TextSelection = _
CType(dte.ActiveDocument.Selection, TextSelection)
Dim cls As CodeClass = CType(sel.ActivePoint.CodeElement( _
vsCMElement.vsCMElementClass), CodeClass)
' Enumerate the CodeClass's attributes.
Dim attrs As String = ""
Dim attr As CodeAttribute
For Each attr In cls.Attributes
attrs &= attr.Name & "(" & attr.Value & ")" & vbCrLf
Next
MsgBox(cls.Name & " has the following attributes:" & _
vbCrLf & vbCrLf & attrs)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
public void ValueExample(DTE2 dte)
{
// Before running this example, open a code document from a project
// and place the insertion point inside a class definition.
try
{
// Retrieve the CodeClass at the insertion point.
TextSelection sel =
(TextSelection)dte.ActiveDocument.Selection;
CodeClass cls = (CodeClass)sel.ActivePoint.get_CodeElement(
vsCMElement.vsCMElementClass);
// Enumerate the CodeClass's attributes.
string attrs = "";
foreach (CodeAttribute attr in cls.Attributes)
{
attrs += attr.Name + "(" + attr.Value + ")" +
Environment.NewLine;
}
MessageBox.Show(cls.Name + " has the following attributes:" +
Environment.NewLine + Environment.NewLine + attrs);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。