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의 경우 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 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.