コンパイラを使用してスタティックメンバーのタイプを推論するにはどうすればよいですか?コンパイラを使用してスタティックメンバーのタイプを推論するにはどうすればよいですか?
C#6.0では、コンパイラは"using static <namespace>.<class>"
ディレクティブを指定することで、静的なプロパティまたはメソッドの型を推論できます。
このように、私は可能な限り小さなコードを書く必要があります。
私は次の静的メンバー持っている:私は、その後、いくつかの種類と機能を定義
module Mock
type Profile() =
static member SomeUserName = "some_user_name"
static member SomePassword = "some_password"
を:
open Mock
(*Types*)
type User = User of string
type Password = Password of string
type Credentials = { User:User; Password:Password }
(*Functions*)
let login credentials =
false
私は、次のテストがあります。
を[<Test>]
let ``sign in``() =
// Setup
let credentials = { User= User Profile.SomeUserName
Password= Password Profile.SomePassword }
// Test
credentials |> login
|> should equal true
私はSomeUserNameとSomePasswordからプロファイル・タイプ修飾子を削除し、代わりにこれを実行したいと思います:
// Setup
let credentials = { User= User SomeUserName
Password= Password SomePassword }
は私が明示的に静的メンバの型を指定する必要がありますか?
静的型ではなく、 'Profile'をモジュールにします。また、あなたは「推論型」という用語を誤解している。 –
それを指摘してくれてありがとう。私はどのようにそれを表現すべきですか? –
「タイプを推論する」とは、「そのコンテキストや使用方法に基づいて何かのタイプを知る」ことを意味します。これはあなたの問題には当てはまりません。コンパイラは、プロパティから返される値に基づいてプロパティの型が 'string'であると完全に推測できます。あなたが実際に望むところでは、私は「これらの特性を有効範囲に持っていく」と言います。また、あなたの質問から、私はあなたが体系的なアプローチが欠けていると思います。あなたは何が何で、どのように働くのかを知る時間を取らずに、暗闇の中を突き抜こうとしているようです。 –