1

シリアル番号で証明書を見つけようとしています。どうやら両側が等しいようですが、デバッガーはそうではないと言います。ここで何が欠けていますか?シリアル番号をコピーしてテキスト エディタに貼り付けたときに、IDE が警告を表示していることに気付きましたが、メッセージは気にしませんでした。ユニコード何とか...

アップデート

  1. 証明書ウィンドウからシリアル番号をコピーしました。
  2. Notepad2 の新しいファイルを開きます。デフォルトの ANSI です。テキストを貼り付けました。再度コピーしました。VSに貼り付けました。値が等しくありません。
  3. Notepad2 ファイルを Unicode として設定します。シリアルナンバー貼り付け。Notepad2 からコピーして VS に貼り付けました。今、それらは等しいです。

Unicode と ansi の問題のようです。

シリアル.png

4

4 に答える 4

3

文字列の作成方法や比較方法に問題はありません。それはうまくいくはずです。.NET の文字列は常に Unicode であるため、エンコードの問題も発生しません。

シリアル文字列を手動で再入力します。貼り付け時に、通常のスペースの代わりに非改行スペースなど、いくつかの異常な文字が含まれているようです。

于 2013-02-19T09:37:35.367 に答える
2

コピーしたとき、「エクストラスペース」を選択しました。奇妙ですが、IDEには表示されません。シリアル番号を慎重に選択すれば、すべて問題ありません。

メモ帳では、次のように表示されます。

?00 c4 aa b9 b1 08 90 5d

これは16進数の3F文字(疑問符)であり、Unicodeの場合はメモ帳に表示されません。ANSIモードでは、?として表示されます。

diff.png

于 2013-02-19T10:01:58.117 に答える
0

私の知る限り、UNICODEでの比較は、英語の英数字を使用すると問題なく機能します。他の言語については、注意点があります。

自分のマシンでチェックできるように、「コピー可能な」コードを提供していただけませんか。(追記:私はそれをタイプするのが面倒だと感じています..:o)

また、==は値型でのみ機能することに注意してください。参照タイプの比較にはEqualsTo()を使用する必要があります(このようにすると、参照ではなく値が比較されます!)

于 2013-02-19T09:24:05.790 に答える
-2

それ以外の

operator==

あなたが使用する必要があります

string.Equals(object Obj)

方法。"=="は、内容ではなく参照が等しいかどうかをテストします。

詳細については、 MSDNを参照してください。

于 2013-02-19T09:23:11.670 に答える