programing

VB에서 동사 문자열 리터럴을 수행하는 방법.NET?

yoursource 2023. 5. 7. 21:11
반응형

VB에서 동사 문자열 리터럴을 수행하는 방법.NET?

VB에서 동사 문자열 리터럴을 어떻게 합니까?NET?

이는 C#에서 다음과 같이 달성됩니다.

String str = @"c:\folder1\file1.txt";

이것은 백슬래시가 문자 그대로 처리되고 이스케이프 문자로 처리되지 않는다는 것을 의미합니다.

VB에서 이를 달성하는 방법.NET?

VB의 모든 문자열 리터럴입니다.NET은 문자 그대로의 문자열 리터럴입니다.간단히 쓰기

Dim str As String = "c:\folder1\file1.txt"

VB.NET은 인라인 제어 문자를 지원하지 않습니다.백슬래시는 항상 문자 그대로 해석됩니다.

이스케이프할 필요가 있는 문자는 C#에서와 같이 이중 따옴표로 두 배로 이스케이프하는 것뿐입니다.

Dim s As String = """Ahoy!"" cried the captain." ' "Ahoy!" cried the captain.

@MarkJ는 이미 @John Skeet의 게시물에서 이것을 지적했습니다.

VB.Net은 이 기능을 지원합니다. 혐오스러운 일 기능(인라인 XML 리터럴을 통해 동사를 사용해야 하는 경우).

문자열 캐싱을 고려해 보십시오!매번 평가하지 마...

Imports System.Xml.Linq

Dim cmdText as String = <![CDATA[
SELECT 
Field1, Field2, Field3 
FROM table
WHERE Field1 = 1
]]>.Value

[2015-1월 5일 편집]

VB14 / VS2015는 셰니건 없이 여러 줄의 문자열을 지원합니다.

Dim cmdText as String = "
SELECT 
Field1, Field2, Field3 
FROM table
WHERE Field1 = 1"

VB가 치료하지 않음\어쨌든 이스케이프 문자로 문자열을 일반 리터럴로 쓸 수 있습니다.

Dim str = "c:\folder1\file1.txt"

제가 아는 한, VB는 동사적 문자열 리터럴의 다른 주요 목표, 즉 여러 줄을 허용하는 것을 달성할 수 있는 방법이 없습니다. 저는 당신이 그것을 위해 사용해야 한다고 믿습니다. (또는.Environment.NewLine물론입니다. 요구 사항에 따라 다릅니다.시스템별 라인 구분 기호를 원할 때도 있고, 특정 프로토콜 등에서 요구하는 대로 특정 라인 구분 기호를 원할 때도 있습니다.)

편집: 최신 버전의 VB는 문자열 리터럴의 여러 줄을 지원합니다.

의심스러운 경우 이 비교 페이지를 보십시오. http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

VB.NET

 'No string literal operator     
 Dim filename As String = "c:\temp\x.dat"

C#

// String literal 
string filename = @"c:\temp\x.dat";  
string filename = "c:\\temp\\x.dat";  

VB.NET은 "\"를 이스케이프 문자로 인식하지 않습니다.그러나 추가 솔루션을 사용할 수도 있습니다(연결보다 작동 속도가 느리다는 점을 고려하십시오).

Dim s As String = Regex.Unescape("c:\\folder1\\file1.txt\nc:\\folder1\\file2.txt\nc:\\folder1\\file3.txt")

이 경우 문자열 "s"에는 세 줄이 포함됩니다.기호 "\"는 regex 메서드 Unescape()로부터 다음 "\"를 보호합니다. 그래서 매번 두 번 반복됩니다.

"\n"은 C#과 같은 "새 줄" 특수 문자입니다."\t"(탭) 등을 사용할 수도 있습니다.

Dim sourceText As String =  
    <string>  


    Imports Microsoft.VisualBasic  
    Imports System  
    Imports System.Collections  
    Imports Microsoft.Win32  
    Imports System.Linq  
    Imports System.Text  
    Imports Roslyn.Compilers  
    Imports System.ComponentModel  
    Imports System.Runtime.CompilerServices  
    Imports Roslyn.Compilers.VisualBasic  

    Namespace HelloWorld  
      Module Program  
        Sub Main(args As String())  
          Console.WriteLine("Hello, World!")  
        End Sub  
      End Module  
    End Namespace  
</string>  

VB XML 리터럴은 .vbhtml 레이저 페이지에서 작동하지 않습니다.다음 릴리스에서 변경되기를 바랍니다.

언급URL : https://stackoverflow.com/questions/13155449/how-to-do-a-verbatim-string-literal-in-vb-net

반응형