CodeFunction.CanOverride - свойство
Задает или возвращает значение, указывающее, может ли быть перегружена функция.
Пространство имен: EnvDTE
Сборка: EnvDTE (в EnvDTE.dll)
Синтаксис
'Декларация
Property CanOverride As Boolean
Get
Set
bool CanOverride { get; set; }
property bool CanOverride {
bool get ();
void set (bool value);
}
abstract CanOverride : bool with get, set
function get CanOverride () : boolean
function set CanOverride (value : boolean)
Значение свойства
Тип: System.Boolean
Логическое значение true, если функция может быть перегружена; в противном случае значение false.
Заметки
Для Visual Basic .NET эта функция была объявлена как MustOverride или Overrideable.
Для Visual C# и Visual C++ эта функция была объявлена с ключевым словом virtual.
Для JScript эта функция не объявлена с ключевыми словами static или final; то есть методы могут переопределяться неявным образом.
Примечание
Значения элементов модели кода, таких как классы, структуры, функции, атрибуты, делегаты и другие, после внесения некоторых изменений могут оказаться недетерминированными, другими словами, нельзя рассчитывать, что их значения будут всегда оставаться одинаковыми.Дополнительные сведения см. в разделе "Значения элементов модели кода могут изменяться" раздела Практическое руководство. Поиск кода при помощи модели кода (Visual Basic).
Примеры
Sub CanOverrideExample(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)
' Find the class's overridable methods.
Dim ovrrides As String
Dim elem As CodeElement
For Each elem In cls.Members
If elem.Kind = vsCMElement.vsCMElementFunction AndAlso _
CType(elem, CodeFunction).CanOverride Then
ovrrides &= elem.Name & vbCrLf
End If
Next
MsgBox(cls.Name & " has the following overridable methods:" & _
vbCrLf & vbCrLf & ovrrides)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
public void CanOverrideExample(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);
// Find the class's overridable methods.
string overrides = "";
foreach (CodeElement elem in cls.Members)
{
if ((elem.Kind == vsCMElement.vsCMElementFunction) &&
((CodeFunction)elem).CanOverride)
overrides += elem.Name + "\r\n";
}
MessageBox.Show(cls.Name +
" has the following overridable methods:" + "\r\n\r\n" +
overrides);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Другие ресурсы
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации
Практическое руководство. Поиск кода при помощи модели кода (Visual Basic)
Практическое руководство. Поиск кода при помощи модели кода (Visual C#)