問題タブ [strong-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.

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

c# - プロパティ名を複製せずに web.config に強く型付けされた呼び出しですか?

ここで答えを探しました。これが以前に尋ねられた場合は申し訳ありません(私はそうだと思います)。

概要:プロパティ名を複製せずに、web.config に厳密に型指定された呼び出しを行うにはどうすればよいですか?


詳細:私のコードでは、文字列の使用を最小限に抑えようとしていますが、何かを 2 回定義するのは好きではありません。

これらの両方の機能を補完するのは、AppSettings の使用 (およびその文字列) を 1 つのクラスに制限することです。これは、プロジェクト全体で参照します。AppSettings クラスは、パブリック プロパティを公開します。

このクラスを保持し、プロパティ名の重複 (12 行目と 14 行目) を防ぐにはどうすればよいですか?

または、他にどのようなソリューションをお勧めしますか?

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

.net - ListBox.DisplayMember = [文字列] .NET で文字列以外になるように回避できますか?

Object DataSource に関して質問されます。だから私はクラスを持っていると考えてください

そして、リスト ボックスをこれらのオブジェクトのリストにデータ バインドしました。だから私は言う

しかし、私の質問は、 Customer クラスの名前を

DisplayMember は「名前」のままです。これは失敗します。そのため、ドメイン オブジェクトをリファクタリングする能力が低下します。これを回避する方法はありますか?

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

html - Joel が提案した型システムを使用した XSS エクスプロイトの防止

Podcast 58 (約 20 分後) で、Jeff は問題について不満を述べ、HTML.Encode()Joel は型システムを使用して通常の文字列と HTMLString を使用することについて話します。

  • デフォルトで HTML エンコードに失敗するビュー エンジンの悪さについての簡単な政治的暴言。この設計選択の問題点は、「デフォルトで安全」ではないことです。これは、フレームワークまたは API にとって常に間違った選択です。ユーザーが入力したデータの一部を Web アプリ内の 1 つの悪臭を放つ場所にエンコードするのを忘れると、完全に XSS に取り憑かれます。信じてください。それは私たちに起こったので、私は知っています。複数回!

  • Joel は、厳密に型指定された言語と適切なフレームワークがあれば、(理論的には) XSS を完全に排除できると主張しています。これには、特定のデータ型、つまりデータをブラウザーに送信する唯一の方法である型を使用する必要があります。そのデータ型はコンパイル時に検証されます。

ブログ投稿のコメントでは、潜在的な弱点を見つけるために静的分析を使用することが言及されています。トランスクリプト Wikiはまだ完成していません。

新しい ASP.NET フレームワークがなくても Joel の提案を実装することは可能ですか?

すべてのコントロールをサブクラス化し、HTMLString に基づく新しいインターフェイスを適用するだけで実装できるでしょうか? サイト固有の機能をより適切に挿入できるようにするために、ほとんどの人がすでにコントロールをサブクラス化している場合、これを実装するのはかなり簡単ではないでしょうか?

静的分析に投資する代わりに、これを行う価値はありますか?

0 投票する
5 に答える
555 参照

c#-4.0 - 動的型付けと強い型付けの利点を融合した夢の言語はありますか?

オブジェクトを内部的にハッシュテーブル(JavaScriptなど)として処理する言語を学びたいと思いますが、オブジェクトを強力な型でラップして、設計時にコード補完/インテリセンスの利点を提供することができます。これが私がこの夢の言語が機能することを望む方法です:

このプログラムがエラーなしでコンパイルされ、例外なく実行 され、コンソールに「Miauew」と出力されることを望みます。これを行うことができる言語はありますか?多分C#4.0?

0 投票する
2 に答える
387 参照

asp.net-mvc - NHibernate +ASP.NetMVC-ユーザーが選択したフィールドに従って強い型の有人データを並べ替える方法

リモートの並べ替えとページングを使用して、グリッド(ExtJS)でユーザーのデータを表示しています。いくつかの注文があるグリッドがあるとしましょう。Orderエンティティは、Order {OrderNumber、Customer、Date、Address {Street、City、PostCode}}のようになります。顧客はNHによってリレーションとしてマップされ、アドレスはコンポーネントとしてマップされます。グリッドに表示されるデータは、OrderNumber、Customer.Number、Customer.Name、Date、Address.Street、Address.City、Address.PostCodeのような名前の列にフラット化されます。

ユーザーが並べ替える列を選択すると、グリッドがフィールド名をサーバーに送信します。サーバー側では、グリッドフィールド名に属するエンティティプロパティを逆方向に復元し、それが単なるコンポーネントなのか、それともリレーションなのかを判断し、CreateAlias+AddOrderなどを使用してCriteriaを構築する必要があります。このロジックは次のようなコードでいっぱいです。

これは非常に単純化されていますが、現時点では必然的にこのようになります。私はいくつかの一般的なよりスマートなソリューションを探しています。何かご意見は?私が今直面している問題は、エンティティプロパティ(ネストされたコンポーネントとリレーションを含む)を変換するための規則を設定できることですが、フィールドがコンポーネントまたはリレーションのようにマップされているかどうかを判断する方法が必要です。これはかなり重いでしょう....

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

oop - 強く型付けされた OOP 言語でのダックタイピングの引数は?

そのような言語 (C#、Java など) で何かを書いて、ダックタイピングを逃したことはありますか? (ダックタイピングに対する議論については、この質問を参照してください)

0 投票する
2 に答える
1788 参照

c# - System.Object から ushort をプルしてから uint としてキャストできないのはなぜですか? (C#)

であるリスト内のアイテムを操作していますSystem.Management.ManagementObjectCollection。これらの各項目は、System.Management.ManagementObject文字列でインデックス付けされたプロパティを含む です。見る:

各「辞書アクセス」は、実際にはプロパティが想定されているものでqueryObjある C# を返しますobject。「実際の」型を事前に知っておく必要がありますが、それで問題ありません。

問題は、キャストに a が含まInvalidCastExceptionれていることです。uint実数型を使用する必要がありushortます。ushortfromのキャストはuint受け入れられ、明白であるべきではありませんか?

この場合、最終的に値を に変換しますがstring、それらをuintまたはintまたはlong変数に取得する必要がある場合はどうなるでしょうか。

0 投票する
2 に答える
773 参照

asp.net - WebForms 3.5で強く型付けされたASCX?

WebForms3.5アプリケーションのコントロールのコードビハインドを取り除くことを目指しています。再びMVCでの実行方法のバグに悩まされましたが、次のようにして、この方法論に一歩近づきたいと思います。

これにより、予想されるパーサーエラーが発生するため、これがMVCプレビューでの修正を待っている問題であったことを思い出し、次のように変更しました。

しかし、これも機能しません!MVCチームがこの機能をどのように活用できたのでしょうか。最新のVS2008ServicePackではなく、MVCプロジェクトタイプについて何か特別なことでしたか?

将来のテンプレートにコードビハインドファイルを含めることを諦めて要求する以外に、これを一般的なユーザー制御方法にできるだけ近づけるための最善のオプションは何ですか?

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

c# - C#でPropertyChangedイベントを行うための強く型付けされた方法はありますか?

プロパティの名前を変更し、INotifyPropertyChanged の PropertyChanged イベントのプロパティ名を除いて、Visual Studio の名前変更機能が必要なすべての名前変更を処理することを期待するのは、やや一般的なイベントである必要があります。手動で名前を変更することを覚えておく必要がないように、どうにかして強く型付けするより良い方法はありますか?