2011-03-15 2 views
0

以下はインターフェイスとその実装です。以下ならばインターフェイスメンバを使用するときのC#varの正しい使い方は何ですか?

interface ICompanyService 
{ 
    Company GetCompany(); 
} 

public class CompanyService : ICompanyService 
{ 
    public Company GetCompany() 
    { 
     //Do something 
     return new Company(); 

    } 
} 

今「companyService」ICompanyService上記の実装、一方がより良い(A又はB)、なぜですか?

var company = companyService.GetCompany(); //.....A 

    Company company = companyService.GetCompany(); //.....B 

答えて

0

Arnisと同様に、それらは下に同じです。 個人的には、文を見るだけで戻り値の型を見ることができないので、この場合はBを好むでしょう。

+0

これが命名の目的です。変数 '会社'は私にはかなり明白です。 –

+0

この例では、これは当てはまりますが、一般的には、メソッドをインタフェースに返すか、複数の会社クラスが存在する可能性があります。 SmallCompany、LargeCompanyまたはwhaterver。とにかく、私はメソッドを見て戻り値の型(明示的)を見ることができるときだけ、varを使うほうが好きです。 –

+0

インターフェイスの下にあるものを知る必要がある場合 - それらを悪用して間違っている場合 –

1

これらは下にあります。

Aは読みやすさの点で優れています。しかし、それは主観的です。長い行が好きな人もいます。

+0

私はBが読みやすいと思った。たとえば、GetCompanyはICompanyを返すことができます。 varを使うと明らかではありません。 – Spock

+0

@Joel私は主観的だと言った。インターフェイスは構造体を定義するべきではありません。 –

関連する問題