C#에서 문자열을 자를때 Substring을 쓰면 됩니다. 하지만 VB가 Left, Right, Mid등을 지원하기때문에
ASP로 짜진 프로그램을 Conversion을 하려면 Left, Right, Mid등의 함수를 C#에서 만들어 써야합니다.
하지만 Instr이나 CInt, Rnd, IsNumeric, Beep등등 수없이 많다면 모든 함수를 전부다 만드시겠습니까?
VB프로젝트를 만들어서 C#에서 참조하는 방법이 있긴 하지만 이것도 귀찮기는 마찬가지입니다.
그리고 쓸데없는 프로젝트가 생기고 Overload된 함수같은경우에 전부다 만들어줘야합니다.
그래서 생각해낸것이 C#에서 VB.Net을 호출하면 될것 같더라구요
Private Sub Test()
Dim text1 As String = Left("abc", 1)
Dim text2 As String = Mid("abc", 2, 1)
Dim text3 As String = Right("abc", 1)
Dim num1 As Integer
Dim MyValue As Integer
Randomize()
MyValue = CInt(Int((6 * Rnd()) + 1))
End Sub
위의 문장을 C# VB로 구현해 봅시다.
1. C# 프로젝트에서 Microsoft Visual Basic .NET RunTime을 참조합니다.
2. using문에 다음을 추가합니다.
using Microsoft.VisualBasic;
3. 이제 마음껏 코딩하면 됩니다.
그럼 아래와 같은 코드로 코딩이 되겠죠
private void Test()
{
string text1 = Strings.Left("abc", 1);
string text2 = Strings.Mid("abc", 2, 1);
string text3 = Strings.Right("abc", 1);
VBMath.Randomize();
int num2 = (int) Math.Round((double) Conversion.Int((float) ((6f * VBMath.Rnd()) + 1f)));
}
Left같은경우 Strings class에 있고 Randomize같은경우 VBMath class에 있습니다.
어느 클래스에 함수가 속해있는지 아실려면 닷넷 도움말에서 "Visual Basic 런타임 라이브러리 멤버"를 참조하세요
ms-help://MS.NETFrameworkSDKv1.1.KO/vblr7net/html/vaorivbruntimelibrarykeywords.htm