2011-03-15 3 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

이 예에서는 true이지만 일반적으로 인터페이스를 반환하는 메서드를 가질 수도 있고 여러 회사 클래스가있을 수도 있습니다. SmallCompany, LargeCompany 또는 whaterver. 어쨌든, 나는 메소드를보고 리턴 유형 (명시 적으로)을 볼 수있을 때만 var를 사용하는 것을 선호합니다. –

+0

인터페이스 아래에 무엇이 있는지 알아야 할 필요가있는 경우 - 그 인터페이스를 악용하고 잘못 처리하는 경우 –

1

이들은 아래에 동일합니다.

A은 읽기 쉽기 때문에 더 좋습니다. 그러나 그것은 주관적입니다. 어떤 사람들은 긴 줄을 좋아합니다.

+0

B가 더 읽기 쉽다고 생각했습니다. 예를 들어 GetCompany는 ICompany를 반환 할 수 있습니다. var를 사용하면 명확하지 않습니다. – Spock

+0

@Joel 나는 그것이 주관적인 것이라고 말했다. 그리고 인터페이스는 구조가 아니라 행동을 정의해야합니다. –

관련 문제