/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/VisualBasic/Portable/Emit/NamespaceSymbolAdapter.vb
76 строк
2 KB
AlekseyTs
Consolidate conditional compilation (#49150)
05 ноя 2020, 20:21
Не верифицирован
05 ноя 2020, 20:21
af3ddd6
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports Microsoft.Cci Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols #If DEBUG Then Partial Friend NotInheritable Class NamespaceSymbolAdapter Inherits SymbolAdapter #Else Partial Friend MustInherit Class NamespaceSymbol #End If Implements Cci.INamespace Private ReadOnly Property INamedEntity_Name As String Implements INamedEntity.Name Get Return AdaptedNamespaceSymbol.MetadataName End Get End Property Private ReadOnly Property INamespaceSymbol_ContainingNamespace As Cci.INamespace Implements Cci.INamespace.ContainingNamespace Get Return AdaptedNamespaceSymbol.ContainingNamespace?.GetCciAdapter() End Get End Property Private Function INamespaceSymbol_GetInternalSymbol() As CodeAnalysis.Symbols.INamespaceSymbolInternal Implements Cci.INamespace.GetInternalSymbol Return AdaptedNamespaceSymbol End Function End Class Partial Friend Class NamespaceSymbol #If DEBUG Then Private _lazyAdapter As NamespaceSymbolAdapter Protected Overrides Function GetCciAdapterImpl() As SymbolAdapter Return GetCciAdapter() End Function Friend Shadows Function GetCciAdapter() As NamespaceSymbolAdapter If _lazyAdapter Is Nothing Then Return InterlockedOperations.Initialize(_lazyAdapter, New NamespaceSymbolAdapter(Me)) End If Return _lazyAdapter End Function #Else Friend ReadOnly Property AdaptedNamespaceSymbol As NamespaceSymbol Get Return Me End Get End Property Friend Shadows Function GetCciAdapter() As NamespaceSymbol Return Me End Function #End If End Class #If DEBUG Then Partial Friend Class NamespaceSymbolAdapter Friend ReadOnly Property AdaptedNamespaceSymbol As NamespaceSymbol Friend Sub New(underlyingNamespaceSymbol As NamespaceSymbol) AdaptedNamespaceSymbol = underlyingNamespaceSymbol End Sub Friend Overrides ReadOnly Property AdaptedSymbol As Symbol Get Return AdaptedNamespaceSymbol End Get End Property End Class #End If End Namespace