質問するログイン新規登録
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

3回答

3859閲覧

vbのコードをC#に変換したい

bybalsender

総合スコア33

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2016/11/30 12:29

0

0

Do Until IsNothing(readuidlist)のVBのコードをC#に変換したサンプルをお願いします。

C#ですと
while (readuidlist == null);
ここの部分でエラーがでます。「式の結果はfalseになります」

コードの全文
'ループカウンター
Dim readuidlist As Integer
'
Dim Mail As TKMP.Net.MailData = pop.MailDatas(readuidlist)
'Mail.UIDの文字列
Dim ui As String = Mail.UID
'全てのUIDを取得する
Do Until IsNothing(readuidlist)
Try
Mail = pop.MailDatas(readuidlist)
Catch ex As Exception
Exit Do
End Try

ui = Mail.UID ar.Add(ui) readuidlist += 1 Loop

TKMP.dllを参照しています。
http://uwa.potetihouse.com/samplecode/tkmp/index.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

まず大本のコードがおかしくて、
Dim readuidlist As Integer
であるので、readuidlistは値型となり、Nothingnull)になりえません
したがってIsNothing(readuidlist)は常に偽になります。

つまり

VB.NET

1Do Until IsNothing(readuidlist) 2... 3Loop

は無意味な条件式を使ったループになります。

C#ではこういう判定する意味のない判定式、
今回で言うreaduidlist == nullを使ってループを作ろうとすると
お前なんか間違えてねぇか?とツッコんでくれます。親切ですね。

まあとりあえず動かすなら

C#

1while(true) 2{ 3... 4}

でいいでしょう。

投稿2016/11/30 15:01

ozwk

総合スコア13553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bybalsender

2016/12/02 10:42

よ~~~くわかりました。 有難う御座いました。
guest

0

readuidlistがIntegerなので、Nullにならないのは、
ozwkさんが書かれていますが。

Do Until IsNothing(readuidlist) Try Mail = pop.MailDatas(readuidlist) Catch ex As Exception Exit Do End Try

DoループとTry-End Tryが入れ子になってます。
変換ツールはVBとしてエラーにならない状態にしてから変換しないと、
正常に変換されないです。

投稿2016/12/02 03:38

KIYOSHI

総合スコア268

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2016/12/02 03:48

エラー出ませんけど
KIYOSHI

2016/12/02 04:02

すみません、読み違ってました。 ozwkさんがかかれているように、readuidlistがNullにならないので というだけでしょうね。
bybalsender

2016/12/02 10:43

お返事有難う御座いました。
guest

0

投稿2016/11/30 12:38

編集2016/11/30 12:40
Y.H.

総合スコア7918

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bybalsender

2016/11/30 12:59

お返事有難う御座います。 ConversorCSVB.exeで実行しましたが、変換結果は 「// { } 」 でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問