問題タブ [casting]
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.
sql - CAST を使用する場合、VARCHAR のデフォルトの長さが 30 であるのはなぜですか?
SQL Server 2005 では、このクエリ
指定された文字列にはそれ以上の文字が含まれていますが、長さとして 30 を返します。これがデフォルトのようです。32 やその他の 2 の累乗ではなく、なぜ 30 なのですか?
[編集] varchar にキャストするときは常に長さを指定する必要があることは承知していますが、これはちょっと調べてみようというクエリでした。疑問が残ります。なぜ 30 なのですか?
c# - すべてのケースを指定せずにオブジェクトを元の型にキャストする方法はありますか?
さまざまなタイプのオブジェクトの配列があり、BinaryWriter を使用して各アイテムをバイナリの等価物に変換し、ネットワーク経由で構造体を送信できるようにします。
私は現在、次のようなことをしています
問題は、タイプを逃した場合、コードが将来壊れる可能性があることです。
のようなことをしたいと思います。
でも、キャストごとにしないとうまくいきません。
編集:
答えを調べた後、これが関数について思いついたものです。テストのために、この関数は配列を syslog に送信します。
c# - .net 2.0のプリミティブ(つまり:int)にnullをキャストすると、無効なキャスト例外ではなくnull ref例外がスローされるのはなぜですか?
私はいくつかのコードを調べていて、コンボボックスがまだ初期化されていないシナリオに出くわしました。これは.NET2.0にあり、次のコードでは、this.cbRegion.SelectedValueはnullです。
このコードは、無効なキャスト例外ではなく、null参照例外をスローしました。無効なキャストの代わりにnull参照例外をスローする理由を誰かが知っているのだろうか?
c++ - enum-int キャスト: 演算子または関数
私が使用している外部コードには列挙型があります:
私が使用している別の外部コードには、3 つの #define ディレクティブがあります。
多くの場合、ValA、ValB、または ValC に等しい int X があり、対応する En の値 (ValA から VALUE_A、ValB から VALUEB など) にキャストする必要があります。そして、逆の操作をしなければならないことが何度もあり、enum Enum を ValA、ValB、または ValC に変換します。これらの関数のシグネチャを変更することはできません。そのような関数はたくさんあります。
問題は、翻訳をどのように行うかです。暗黙的に使用される 2 つのキャスト演算子を作成する必要がありますか? または、明示的に使用される2つの翻訳関数が必要です:
または他の解決策はありますか?
java - 実行時に決定されるクラスへのキャスト
ビジネス オブジェクトfetchObjects(String)
の配列を返すメソッドがあります。Contract
パラメータは、className
返すべきビジネスオブジェクトの種類を教えてくれます (もちろん、これはContract
s を返すと言ったので、この解釈されたケースでは意味がありませんが、基本的には実際のシナリオでの状況です)。そこで、どこかからエントリのセットを取得し、コレクションのエントリのクラスをロードします (そのタイプは で指定されますclassName
)。
ここで、返す配列を作成する必要があるため、Set
のtoArray(T[])
メソッドを使用します。リフレクションを使用して、空の Contracts 配列を作成します。しかし、これは私に static 型の値を与えますObject
! 次に、適切な型にキャストする必要があります。この場合はContract[]
(下のリストの「アスタリスクの下線」の部分を参照)。
私の質問は次のとおりです。Contract[]
リストで行っているようにキャストする方法と方法はありますが、配列要素 ( ) の型Contract
className
を(または)のみentriesType
で決定しますか? 言い換えれば、私がやりたいことは、基本的に次のようにキャストすること(entriesType[]) valueWithStaticTypeObject
です。classname
Contract
これはどういうわけか本質的に不可能ですか、それとも何とかできるのでしょうか? たぶんジェネリックを使用していますか?
ありがとう。
更新: CodeIdol
toArray
から取得したタイプセーフなメソッドを使用して、メソッドを次のように更新しました。fetchObjects
コメントで引用されているコンパイラ エラーを取り除くにはどうすればよいですか? これが機能するように、メソッドSet<Contract>
の戻り値の型を絶対に指定する必要がありますか? getEntrySet
ご指摘ありがとうございます。
.net - これはキャストの非効率的な使用ですか?
この質問は、私が尋ねた(そして回答された)以前の質問の拡張です。コードをリファクタリングして、さまざまなリファクタリングされたソリューションをいじったり実験したりしています。
私が思いついた解決策の 1 つ (しかし満足できませんでした..覚えておいてください、私はいくつかの個人的なコーディング スタイルを試しているだけです) は次のコードでした:-
data
親オブジェクトを何度も実装するインターフェイス タイプにキャストしていることに注意してください。コードは機能しますが、これはコードの匂いのように感じます->あまり効率的ではありません。私はこれを改善して唱えることができると思います - そこにいるグルからの考えはありますか?
python - Python での型キャスト
Python の文字列を、符号なしおよび符号付きの 8、16、32、および 64 ビットの int、double、float、string などの他の型に変換する必要があります。
これどうやってするの?
vb.net - DirectCast の代わりに TryCast を使用する理由
Object obj
Typeにキャストしようとしているときに、キャストT
できない場合は何か問題があります。
そして、オブジェクトをキャストした後、キャスト オブジェクトの操作を探します。
むしろ、そのオブジェクトを使用する場所を言うよりも、キャストする場所で例外が発生することを期待しています。
そういう意味ではDirectCast
の代わりに使ったほうがいいのTryCast
でしょうか?または、を使用することの他の重要性を見逃していTryCast
ますか?
php - 実行時にオブジェクトのクラスを変更する
私はCMSのJoomlaを使用していますが、パラメーターのセットをフォームJParameterにレンダリングするコアクラスがあります。基本的にrender()
、それは私のサイトの他の部分と一致しないいくつかのテーブルを含むHTMLを出力する機能を持っています。
保守性の問題について、そしてこれが他にどこで使用されているのかわからないので、コアコードを変更したくありません。理想的なのは、JParameterを拡張する新しいクラスを定義してから、$paramsオブジェクトをこの新しいサブクラスにキャストできることです。