2010-04-08 3 views
0

무엇이 잘못 되었습니까? 익명 개체 구문을 초기화 하시겠습니까?익명 개체 초기화 구문에 어떤 문제가 있습니까?

If (Not row Is Nothing) Then 
    Dim info As New CultureInfo(Conversions.ToString(row.Item("cultureId"))) With { _ 
      .NumberFormat = New With {.CurrencySymbol = Conversions.ToString(row.Item("symbol")), _ 
        .CurrencyGroupSeparator = Conversions.ToString(row.Item("thousSep")), _ 
        .CurrencyDecimalSeparator = Conversions.ToString(row.Item("thousSep")), _ 
        .CurrencyDecimalDigits = Conversions.ToInteger(row.Item("decimals")), _ 
        .NumberGroupSeparator = Conversions.ToString(row.Item("thousSep")), _ 
        .NumberDecimalSeparator = Conversions.ToString(row.Item("thousSep")), _ 
        .NumberDecimalDigits = Conversions.ToInteger(row.Item("decimals"))}}} 
    hashtable.Add(key, info) 
End If 

구문 오류 또는 개체 초기화 유형 캐스팅 문제입니다.

감사합니다.

답변

2

CultureInfo의 NumberFormat을 익명 형식 인스턴스로 설정하려고합니다. CultureInfo.NumberFormat는 NumberFormatInfo 유형입니다. 그래서 당신은 쓸 필요가 :

Dim info As New CultureInfo(...) With { _ 
    .NumberFormat = New NumberFormatInfo With { ... } _ 
}     ' ^^^^^^^^^^^^^^^^ 
+0

감사합니다. @itowlson. 그것은 작동합니다! –

1

처음이 익명이 아닌 구문을보십시오 : 그것은 작동하는 경우

If (Not row Is Nothing) Then 
    Dim numberFormat as New NumberFormat() 
    numberFormat.CurrencySymbol = Conversions.ToString(row.Item("symbol")) 
    numberFormat.CurrencyGroupSeparator = Conversions.ToString(row.Item("thousSep")) 
    numberFormat.CurrencyDecimalSeparator = Conversions.ToString(row.Item("thousSep")) 
    numberFormat.CurrencyDecimalDigits = Conversions.ToInteger(row.Item("decimals")) 
    numberFormat.NumberGroupSeparator = Conversions.ToString(row.Item("thousSep")) 
    numberFormat.NumberDecimalSeparator = Conversions.ToString(row.Item("thousSep")) 
    numberFormat.NumberDecimalDigits = Conversions.ToInteger(row.Item("decimals")) 

    Dim info As New CultureInfo(Conversions.ToString(row.Item("cultureId"))) 
    info.NumberFormat = numberFormat 

    hashtable.Add(key, info) 
End If 

가, 다시 원하는 구문, 단계적으로 그것을 리팩토링하려고합니다. 각 단계에서 코드가 여전히 작동하는지 확인하십시오. 그렇지 않다면, 당신은 당신의 문제를 발견했고 그것을위한 해결책을 찾으려고 노력할 수 있습니다.

+0

@Prutswonder 당신이 맞습니다. 익명 성명서를 피함으로써 간단하게 만들어야합니다 :) 도움에 감사드립니다. –

관련 문제