File: Utilities\CodeSnippets.vb
Web Access
Project: ..\..\..\src\EditorFeatures\VisualBasicTest\Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests.vbproj (Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests)
' 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.
 
Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests
    Friend Module CodeSnippets
 
        Public Const FormattableStringType = "
Namespace System
    Public MustInherit Class FormattableString
        Implements IFormattable
 
        Public MustOverride ReadOnly Property Format As String
        Public MustOverride Function GetArguments() As Object()
        Public MustOverride ReadOnly Property ArgumentCount As Integer
        Public MustOverride Function GetArgument(index As Integer) As Object
        Public MustOverride Overloads Function ToString(formatProvider As IFormatProvider) As String
 
        Private Function IFormattable_ToString(ignored As String, formatProvider As IFormatProvider) As String Implements IFormattable.ToString
            Return ToString(formatProvider)
        End Function
 
        Public Shared Function Invariant(formattable As FormattableString) As string
            Return formattable.ToString(Globalization.CultureInfo.InvariantCulture)
        End Function
 
        Public Overrides Function ToString() As String
            Return ToString(Globalization.CultureInfo.CurrentCulture)
        End Function
    End Class
End Namespace
 
Namespace System.Runtime.CompilerServices
    Public MustInherit Class FormattableStringFactory
        Public Shared Function Create(format As String, ParamArray arguments As Object()) As FormattableString
            Return new ConcreteFormattableString(format, arguments)
        End Function
 
        Private NotInheritable Class ConcreteFormattableString
            Inherits FormattableString
 
            Private ReadOnly _format As String
            Private ReadOnly _arguments As Object()
 
            Friend Sub New(format As String, arguments As Object())
                _format = format
                _arguments = arguments
            End Sub
 
            Public Overrides ReadOnly Property Format As String
                Get
                    Return _format
                End Get
            End Property
 
            Public Overrides Function GetArguments() As Object()
                Return _arguments
            End Function
 
            Public Overrides ReadOnly Property ArgumentCount As Integer
                Get
                    Return _arguments.Length
                End Get
            End Property
 
            Public Overrides Function GetArgument(index As Integer) As Object
                Return _arguments(index)
            End Function
 
            Public Overrides Function ToString(formatProvider As IFormatProvider) As String
                Return String.Format(formatProvider, _format, _arguments)
            End Function
        End Class
    End Class
End Namespace
"
 
    End Module
End Namespace