C# UserComponent 쓸때 Object reference not set to an instance of an object: 오류경험처리

//에러가 발생했던 초기상태
public static string[] strArr주식코드;
public static string[] strArr옵션코드;
public static string[] strArr주식선물코드;
public static string[] strArr주식옵션코드;
문자열 클래스를 만들어놓고 생성자가 뜨면 이것들을 한번에 초기화 시켜주는 형태로 만들었다.
null 어쩌고 오류가 떴다. 근데 처음부터 떴으면 진작에 고쳐놨을건데 어이없게도 한참 잘 돌아가다가 그냥 갑자기 뜬다.;;;

어쨌든 그래서 눌들을 없애줬다.
프로그램 제일 앞부분에 이 클래스의 생성자를 호출 해 주기 때문에 순서상으로는 문제가 없지만....
비주얼 스튜디오가 이거 안하면 유저 컴포넌트를 안 띄워준다니까 할 수 없지..

//수정후
public static string[] strArr주식코드 = { "", "" };
public static string[] strArr옵션코드 = { "", "" };
public static string[] strArr주식선물코드 = { "", "" };
public static string[] strArr주식옵션코드 = { "", "" };
대충 초기화시켜줬다. 에러는 없어졌다.
어차피 생성자 뜨면서 값도 변경되니까 아무거나 넣어도 상관도 없고... 
어쨌든 한 20분쯤 골치 썪은 것 같다.
외국 커뮤니티 보니까 예외처리를 해버리라는 말도 있고 그랬는데...

값을 선언할 때는 무조건 초기화를 시켜놓자... 특히 static은

int int숫자= 0;

string str문자열=""

c#는 한글로 변수명이 잘 만들어져서 자주 사용하는데... 편하다.

호환이 안된다는 말도 있던데... 뭐 혼자 쓸거니까

그리고 어차피 한국에서만 쓴다면 문제 없을듯....

VB6 엑셀파일 읽고 쓰는 예제

Public objXcl As Excel.Application
Set objXcl = Excel.Application
objXcl.Workbooks.Add
objXcl.Sheets(1).Select

'Open csv file, then read
Do Until EOF(nFileNbr)
Input #nFileNbr, sTextField(0), sTextField(1), sTextField(2), sTextField(3)

With objXcl
Range("B1").Select
.Range("B1").Value = sTextField(0)
Range("B2").Select
.Range("B2").Value = sTextField(1)
Range("B3").Select
.Range("B3").Value = sTextField(2)
End With
Loop

    FileNum = FreeFile
    Open "e:\data\code\VBElw.csv" For Input As #FileNum
    Line Input #FileNum, nextLine
    ElwCode = Split(nextLine, vbLf)
    n5 = UBound(ElwCode)
    'Open "e:\data\code\VBElw.csv" For Input As #FileNum
    'i = 0
    'Do Until EOF(FileNum)
        'ReDim Preserve StockCode(i)
        'Line Input #FileNum, nextLine
        'LinesFromFile = LinesFromFile + nextLine + vbCr + vbLf
        'splitLine = Split(nextLine, ",")
        'elwCode(i) = splitLine(0)
        'ElwCode(i) = nextLine
        'i = i + 1
    'Loop
    
    FileNum = FreeFile
    Open "e:\data\code\VBStockFuture.csv" For Input As #FileNum
    Line Input #FileNum, nextLine
    StockFutureCode = Split(nextLine, vbLf)
    n6 = UBound(StockFutureCode)
    'Line Input #FileNum, LinesFromFile
    'splitLines = Split(LinesFromFile, ",")
'
    'sFilename = splitLines(0)
    'sFilename = splitLines(1)
    'sFilename = splitLines(2)
    'i = 0
    'Do Until splitLines(i) <> Null
    'splitLine = Split(splitLines(i), ",")
    'elwCode(i) = splitLine(0)
    'i = i + 1
    'Loop
    'Text1.Text = splitLine(0)

VB6 구닥다리라 문제가 참 많다. 할 수 없이 쓰는데 돌겠다.ㅠ 0D 0A 개행문자 문제...

vbCr + vbLf
0A 0D
Dim nextLine As String
    Dim i As Integer
    Dim FileNum As Integer
    Dim a As String
    FileNum = FreeFile
Open "e:\data\code\VBStockFuture.csv" For Input As #FileNum
    i = 0
    Do Until EOF(FileNum)
        ReDim Preserve StockCode(i)
        Line Input #FileNum, nextLine
        StockFutureCode(i) = nextLine
        i = i + 1
    Loop
Err:
    Close FileNum

어디서 이런걸 주서다가 쓰려고 하는데...
이렇게 하면 한줄씩 읽을 수 있다고 했는데... 죽어도 안되서
헥스코드로 열어봤더니 개행문자가 0D 0A로 돼 있다
여긴 문제가 없는데...

UTF8로 저장한 문선데.. 그게 문제인건가
제대로 인식을 못하는 것 같다
파일을 통째로 읽어서 저장을 해 버린다
VB6은 UTF8이건 뭐건 헥스에서 개행문자를 발견했으면 개행을 해야지 0D 0A인데 그걸 왜 이렇게 헤매는건지

vbCr은 먼 음표모양이고
vbLf는 다이아1개짜리 카드모양.. 0D 0A로 뜬다

Line저걸로 해서 일단 배열로 가져오고 
저장문자배열 = Split(문자열,vbLf)
로 처리했다
Line Input #FileNum, nextLine
StockCode = Split(nextLine, vbLf)

이것도 편법인지는 모르겠는데 참... 할줄도 모르는거가지고 고생했네