問題タブ [as-operator]

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.

0 投票する
6 に答える
6417 参照

c# - あるオブジェクトを別のタイプにキャストする

Aという名前のクラスとBという名前のクラスが1つあります

これで、クラスの関数がクラスAのオブジェクトを受け入れるアセンブリが1つあります。このアセンブリは私が作成したものではないため、制御できません。基本的にはサードパーティのアセンブリです。

しかし、クラスBは少しカスタマイズされているので、オブジェクトを提供したいと思います。クラスAのすべてのプロパティが含まれているので安心してください。クラスBのオブジェクトをタイプAに型キャストして、サードパーティのアセンブリをプロジェクトに統合したり、ニーズに応じてルックアンドフィールをカスタマイズしたりするにはどうすればよいですか?

もしそうなら、そのような(A)objBことは許可されていません。それから私はこれを試しました:

ただし、この場合の問題は、objAがnullであるということです。

混乱を避けるために:クラスAとアセンブリはサードパーティによって提供されます。

前もって感謝します :)

0 投票する
6 に答える
15583 参照

c# - 構造体に as キーワードを使用できないのはなぜですか?

次の構造体を定義しました。

後で、別のオブジェクトの Tag プロパティに割り当てます。

しかし、そのようにTagプロパティを取得しようとすると、

Visual Studio では、次のコンパイル時エラーが発生します。

演算子 as は、参照型または null 許容型内で使用する必要があります

その意味は何ですか?どうすれば解決できますか?

0 投票する
4 に答える
132 参照

c# - 「as」はポリモーフィズムを可能にしますか? ポリモーフィズムを有効にする基本クラスを取るメソッドに継承されたクラスを渡すでしょうか?

すべての拳、私は使用virtualしますoverride

たとえば、基本クラス A には methodA.do()があり、継承されたクラス B にはB.do()A をオーバーライドするメソッドがあります。

を呼び出すと(B as A).do()、どちらdo()が実行されますか?

または、メソッドがある場合はvoid mymethod(A a) {a.do()}、今それを呼び出すと、B b; mymethod(b)実行されb.do()ますか?

0 投票する
7 に答える
19505 参照

c# - C# で as キーワードを使用する必要がある場合

ほとんどの場合、タイプを変更したい場合は、従来のキャストを使用したいだけです。

良い理由:

  • これは速い
  • 何かが間違っている場合は文句を言います(オブジェクトがnullの例外を与える代わりに)

asでは、 I could't really find or think of something that said it's perfect を使用する良い例は何ですか?

注:実際には、コンパイラが機能するキャストの使用を妨げている場合があると思いますas(ジェネリック関連?)。

0 投票する
7 に答える
18366 参照

delphi - 一度に複数のクラスに対して「As」演算子で「Sender」パラメーターを使用する方法は?

Delphiでは、これを行う必要がある場合があります...

...しかし、場合によっては、次のような他のオブジェクト クラスで関数を繰り返す必要があります...

...オペレーターAsが柔軟性を受け入れないためです。.Textの後に来るを許可するには、クラスを認識している必要があり()ます。

場合によっては、指定できない類似のビジュアル コントロールを使用して同じことを行う必要があるため、コードが類似の要素でいっぱいになるfunctionsことがあります。procedures

あくまでも使用例です。通常、これらのコードをより複雑なコードで使用して、多くのコントロールやその他の種類のオブジェクトで標準的な目的を達成します。

これらのタスクをより柔軟にするための代替手段またはトリックはありますか?

0 投票する
3 に答える
615 参照

c# - 構造体の as 演算子?

理解できません。Asオペレーター:

as 演算子は、互換性のある参照型または null 許容型の間で特定の型の変換を実行するために使用されます。

では、なぜ次のように動作するのでしょうか?

  • Babyは構造体であり、作成すると に値が入りstackます。ここには参照は含まれていません。

  • ここには確かに null 許容型はありません。

なぜ私が間違っているのかについての説明はありますか?

0 投票する
1 に答える
816 参照

c# - アクションのキャスト方法行動へ

どうすればこれを達成できますか? または回避策はありますか?

0 投票する
3 に答える
176 参照

c# - null 許容値型の as 演算子は不必要に遅いですか?

次のコードを検討してください。

私が見る限り、メソッドFillUsingAsNullableとメソッドFillUsingOwnCodeは同等であるはずです。

しかし、「独自のコード」バージョンの方が明らかに速いようです。

2「x86」または「x64」をコンパイルするための選択肢、および「2デバッグ」または「リリース (最適化)」をコンパイルするための選択肢、およびメソッド3で何を返すかの選択肢があります。GetObject私が見る限り、これらすべての2*2*3 == 12ケースで、「独自のコード」バージョンは「null 許容」バージョンよりも大幅に高速です。

質問:不必要asNullable<>遅いですか、それともここに何かが欠けていますか(かなりの可能性があります)?

関連スレッド: 「as」および null 許容型によるパフォーマンスの驚き.

0 投票する
1 に答える
2351 参照

c# - ActionResult として ViewResult が null を返します..しかし、明示的にキャストできますか?

私はいくつかの単体テストを書いています。条件が true の場合、コントローラー アクションは を返しHttpNotFoundResult、それ以外の場合は を返し、ViewResultその中に特定のモデルを含める必要があります。

テストの 1 つ ( を返すシナリオのテストViewResult) として、アクションを実行し、結果を にキャストしてみViewResultます。ただし、var result = myController.MyAction() as ViewResult( where resultis an ActionResult) を使用すると、result常に null に評価されます...しかし、実行するvar result = (ViewResult)myController.MyAction()と、結果はうまくキャストされます。

どうしてこれなの?の使い方がよくわからないのasですが?

関連コード:

編集:要点を含む完全な例。申し訳ありませんが、構文の強調表示が気に入らないようです。 https://gist.github.com/DanPantry/dcd1d55651d220835899

0 投票する
1 に答える
96 参照

c# - Java から C# への学習/明確化

それで、月曜日の朝に C# の学習を開始しました。過去 2 日間、次から次へとビデオを見てきましたが、今、自分が正しく考えているかどうかを知りたい観察結果がいくつかあります。

私の過去は約 4 年間の大学レベルの Java プログラミングでした。そのため、説明が必要であり、それを Java アイテムに言及することが関連している場合は、遠慮なくマインドセット リンクを作成してください。

私はまた、最初の「実際の」アプリケーション開発インターンシップを開始しているので、C# および .Net ベースのプロジェクトに取り掛かる前に、最初の 1 週間は自分で何かを学ばせてもらっています。

どれも大歓迎です!

  1. 「as」演算子: 私の理解では、これは基本的にキャストです。だから私は言うことができました

    これは (double)a と同等であるはずですよね?

    また

    これは (Label)sender のようになり、sender はオブジェクトですが、今度はラベルとしてキャストされますね。

  2. 動的タイプ: これについての私の理解では、これは「すべてのもの!」です。タイプ、つまり動的 d; int、double、object、string などとして使用できます。何にでも適用できます。はい/いいえ/どのような?

    /li>
  3. それが正しい場合、これはボクシングとどのように違うのですか? ボクシングは単なる「as」演算子/動的タイプですが、タイプオブジェクトでのみ使用できますか?

  4. 整数リテラル、これらはどのくらいの頻度で、どのようなシナリオで使用されますか? 私はそれらのセグメントを見ましたが、彼らはかなり奇妙に見えました。私はアプリケーション開発を行っているので、これらが役立つ場合は、日常的な目的のいくつかを説明してください

    これらすべてがアプリケーション開発タイプのどこで使用されるかについて、私は混乱しています。彼らは私には直接アセンブリの相互作用のように見えましたが、おそらくそれはアプリ開発の一般的な部分です (最初の「実際の」インターンシップ)

  5. {#} 構文 / WriteLine: いくつかのデモ アプリを作成しましたが、それらは次のような構文を使用しています。

    また

    私が認識していることから、{0}、{1}、{2} などは何らかの形でセットから値を引き出しています (私が物理的に作成したとは思いません)。これが何と呼ばれているのかわからないので、Googleで検索する方法がわかりません。

    これは非常に便利な操作だと思うので、誰かが私を正しい方向に向けてくれませんか。

  6. Nullable 型: ここで学んだことから、次のような式は

    有効な相互作用であるためエラーは発生しませんが、Java では何らかのコンパイル エラーが発生します。

    次のように、最初にインスタンス化を使用して null 許容型を設定することもできると思います。

    これは上記と同じですが、null 属性がタグ付けされています。

    これについての私の質問は、

    • 「Nullable」はすべてのタイプまたは一部のみに適用できますか?

    • d の実際の値を取得できますが、それでもチェックで null が返されるようにすることはできますか? タイプにnull属性をタグ付けできるので、「null」の属性と「値」自体は互いに独立して処理/チェックされると推測しています。それは正しい推測ですか、それとも間違った推測ですか? (必要に応じて、より良い説明を試みることができます)

  7. 文字列の質問!

    • Java で String を使用するように、C# で String を使用しますか? (大文字)

    • 部分文字列を使用する場合、これら 2 つの文字列が異なる回答を返すのはなぜですか?

      /li>
  8. もっと追加するかもしれません...

    あまり多くのことを求めているわけではないことを願っています。今後数日間で C# をできるだけよく学べるように努めているだけです。

    新しいアプリ開発者が知っておくべきことに関して、C# に関するいくつかの優れた記事/チュートリアル/ect を知っている人がいる場合は、その方向を教えてください。私も PluralSight のアカウントを持っているので、そちらのチュートリアルも参照してください。

    ありがとうございました、

    -オースティン