問題タブ [implicit-typing]
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# - なぜ var が悪いのでしょうか?
先日、同僚とおしゃべりをしていて、彼らのコーディング標準var
では、C# でのキーワードの使用が明示的に禁止されていると聞きました。彼らはなぜそうなのかわからなかったので、私は常に暗黙の宣言がコーディング時に非常に役立つことを発見しました. 変数の型を見つけるのに問題があったことは一度もありません(VSで変数にカーソルを合わせるだけで、そのように型が得られます)。
C# で var キーワードを使用するのが悪い考えである理由を誰かが知っていますか?
c# - 暗黙的に型指定されたローカル変数の使用
ReSharperの試用版をインストールしたところ、最初に気づいたことの 1 つは、明示的に型指定されたローカル変数を暗黙的に型指定された変数に置き換えることを常に提案していることです。
明示的に型付けされた変数の方が読みやすい (より明示的) と思います。
ReSharper の提案についてどう思いますか? 暗黙的に型指定された変数を使用する利点はありますか? いつ暗黙的/明示的な変数を使用しますか?
parameters - ユーザー定義型を SqlParameterCollection.AddWithValue に渡すにはどうすればよいですか?
StudentID
文字列への暗黙的な変換を行うというカスタム データ型があります。
StudentID
インスタンスを(値として)に渡しSqlCommand.Parameters.AddWithValue
てコマンドを実行すると、次のエラーが表示されます。
のようなパラメーターの型を指定SqlDbType.NVarChar
しても役に立ちません。機能する唯一の方法は、StudentID
値を文字列に明示的にキャストすることです。これは、暗黙的なキャストの目的を無効にします。
フレームワークは利用可能な変換を考慮していないと思います。StudentID
プリミティブ型への明示的なキャストを必要とせずに、コマンドがクラスを処理できるようにするためにクラスに対してできることはありますか?
この MSDN の記事では、プリミティブ型の処理方法について説明していますが、ユーザー定義型については説明していません。最も近いのは object で、Variant として渡されます。
失敗の正確なポイントは、署名付きの System.Data.SqlClient.MetaType.GetMetaTypeFromValue メソッドにありますprivate static MetaType GetMetaTypeFromValue(Type dataType, object value, bool inferLen)
。リフレクションは、プリミティブ型を探すことを明らかにし、TypeCode がオブジェクトの場合、SqlBoolean などの Sql* データ型を探すため、非常に特定の種類のプリミティブまたは Sql* 型を探しているようです。
c# - 暗黙の型付け; なぜローカル変数だけですか?
暗黙の型付けがローカル変数に限定されている理由を知っている、または推測したい人はいますか?
しかし、なぜ...
c# - クラスの暗黙的な変換
次のようにクラスで暗黙的な変換を使用できることは知っていますが、インスタンスを取得してキャストや変換なしで文字列を返す方法はありますか?
c# - C# 3.0 での暗黙的な型付けの利点は何ですか >+
私が見ることができる唯一の利点:
以上
後で ClassB が必要だと判断した場合は、宣言の RHS を変更するだけで済みます。
コレクションを列挙している場合は、単に「var」にして、後でタイプを把握することもできると思います。
それですか??私の弱い心には見えない、他に何か大きな利益があるのだろうか?
c - 「長い i = 1;」Cで暗黙の型変換を引き起こしますか?
long i = 1;
" " の代わりに " "と書いlong i = 1l;
た場合、 は1
として認識されint
、暗黙的に に変換されlong
ますか?
編集:ありがとうございました。型変換がないことがわかります。サフィックスu
(のような10u
)もそうですか?l
では、それらのとの用途は何u
ですか?
c# - C# の暗黙的な型でこれを行うことができないのはなぜですか?
ここでやりたいことを行う別の方法はありますか?
そうでない場合、暗黙の型にはあまり意味がありません...
c++ - 式 int から double への暗黙的な型変換
コードで名前付き定数を使用する場合、暗黙的な型変換を削減しようとしています。たとえば、使用するのではなく
私は使うだろう
そのため、型変換を行う必要はありません。しかし、私がこのようなことをする表現では...
その 2 は整数として評価され、暗黙的に変換されますか? 代わりに 2.0 を使用する必要がありますか?
c# - 今後は暗黙的に型指定された変数です (C#)
.net v2 用に最初に作成されたプロジェクトで、Resharper の StyleCop を使用しています。しかし、それ以来、このプロジェクトを 3.5 フレームワーク用にアップグレードしました。
Stylecop は、明示的に型指定された変数の大部分を暗黙的に型指定されたものに変更することを推奨しています。例:
文字列 - 変数
カスタムの厳密な型 - var
これは、.net 3.5 プロジェクトで作業する場合の進め方ですか。すべてを var として宣言するのは珍しいようです。
私の用語が出てきた場合は、質問のタイトルを自由に更新してください...