問題タブ [tryparse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Enum.TryParse - スレッドセーフですか?
.NET 4.0 の Enum.TryParse がスレッド セーフかどうかを調べようとしています。
ソース コード (逆コンパイル) は次のとおりです。
私にとって問題と思われるのは、次の行です。
結果がデフォルト値に設定された直後で、解析された値に設定される前に、別のスレッドが結果にアクセスした場合はどうなるでしょうか?
[編集] Zoidberg の回答に続いて、質問を少し言い換えたいと思います。
問題は、Enum.TryParse が「トランザクション」(またはアトミック) であるかどうかだと思います。
静的フィールドがあり、それを Enum.TryParse に渡すとします。
ここで、TryParse が実行されているときに、別のスレッドが MyField にアクセスします。TryParse は MyField の値を SomeEnum のデフォルト値にしばらく変更し、それから解析された値に設定します。
これは必ずしも私のコードのバグではありません。Enum.TryParse が MyField を解析された値に設定するか、まったく触れず、一時フィールドとして使用しないことを期待します。
c# - int.TryParse() は "#.##" に対して false を返します
文字列パラメーターを受け取り、それらを整数に変換する関数があります。
安全な変換のために int.TryParse() が使用されます。
関数呼び出し ReportView("2","4")--> int.Tryparse で数値の解析に成功
関数呼び出し ReportView("2.00","4.00") --> int.TryParse で数値の解析に失敗
なんで?何か案が?
@更新
申し訳ありませんが、私の概念は間違っていました。私はC#を初めて使用します.Int.TryParse()は整数部分を返し、小数を無視すると思いました。しかし、Convert.ToInt32("string") でもそうはなりません
。
c# - C#に曜日名を含める場合は、DateTime文字列を有効として認識します
日付文字列に曜日が付加されている場合、TryParseは失敗します。
これに対処して、日付であると安全に判断し、さらに日付に変換できるようにするための最良の方法は何ですか?
c# - DateTime.TryParseExact と複数の日付形式の解析
文字列が有効な日付かどうかを確認しようとしています。日付が「2011–7–17 23:18:52」形式であるため、問題が発生しています。私は次のようにテストしています:
私が問題を抱えている理由は、日付が月に対して 1 M 値または 2 MM しか持てないためだと思います。処理する大量のデータがあり、M を MM に変更することはできません。
編集:提案されたすべてのリンクを試しましたが、おそらくカルチャーインフォが24時間時計を認識していない可能性があります(疑問符)
c# - 複数の TryParse() 呼び出しで同じ変数を再利用する
私はこれについていくつか読みましたが、私のものと同様の質問から、私が尋ねようとしていることは (簡単には) 不可能なようです... しかし、とにかく確認したかったのです. おそらく、これらの質問はすべて古いバージョンの C#/.NET からのもので、最近実装されたものです。
ともかく。私のクラスの 1 つに switch-case ステートメントがあります。その目的は、基本的に int ( typeID
) と string ( ) を取り、によって示されるデータ型として解析できるvalue
かどうかを確認することです。たとえば、ここに私が今持っているものの一部があります:value
typeID
私がやりたいことは、ケース 1 と 3 で見られるchar
/bool
インスタンス化を回避できるようにすることです。理想的には、return ステートメントだけを使用したいと思います。大したことではありませんが(もちろん)、これをもっと(さらに)コンパクトにできればいいのですが。
c# - TryParse()-なぜこのコードは0を返すのですか、結果は-1ではないのですか?
次のコードを参照してください。
失敗したTryParse()
場合、ブロックはスキップされ、Console.WriteLine("Parsed")
呼び出されず、の値はoutput
同じ(-1)になりませんか?
戻ってきた0
c# - DateTime.TryParseメソッドによる有効な日付チェック
メソッドを使用Datetime.TryParse
して有効な日時を確認しています。入力された日付文字列は任意の文字列データになります。しかし、無効の指定日としてfalseを返しています。
編集:私は逃した。有効な日付を「15/07/201212:00:00」として確認する必要があります。
どんな提案でも大歓迎です。
c# - Decimal.TryParseは私の10進値を解析しません
(テキストボックスのユーザーから)0.1のようなものを変換しようとすると、値bは常にfalseになります。
どうやってここで働くことができますか?
c# - Single.TryParse を使用したフロートの解析が失敗する
MSDN には、Single.TryParse に関する記事があり、このサンプル コードが含まれています 。
問題は、TryParse が返しtrue
、文字列が変換される記事にありますが、試してみるとfalse
. これを修正するにはどうすればよいですか?
UPD:解析を簡素化するために、次の 2 行を使用できます。
この設定により、先頭と末尾に空白文字がある負の浮動小数点数と文字列を解析できます。
c# - Enum.TryParse: 戻り値が false の場合の out パラメータ値の保証または契約はありますか?
のドキュメントにInt32.TryParse
よると、メソッドが false を返す場合、out パラメータがゼロに設定されます。Enum.TryParse のドキュメントに同様の保証はありません。メソッドは out パラメータを何かに設定する必要があり、ゼロが最も理にかなっているからです。
保証は別の場所で指定または文書化されていますか、それとも本当に保証はありませんか?