다음 솔루션을 찾으려고 고군분투하는 오버로드 된 생성자가있는 situtation이 있습니다. 중개 할당을 생성자 연결과 함께 사용하는 방법을 볼 수 없습니다.중간 변수로 생성자 체인 연결
다음은 유효하지 않습니다하지만 난
public MyThing(IServiceLocator services, int? userId)
{
// blah....
}
public MyThing(IServiceLocator services, string userName)
{
User user = services.UserService.GetUserByName(userName);
int userId = user == null ? null : (int?)user.Id;
// call the other constructor
this(services, userId);
}
내가 유효한 코드 위를 작성 알고있는 유일한 방법을 수행 할뿐만 아니라 추한 코드 인
public MyThing(IServiceLocator services, string userName)
: this(services,
services.UserService.GetUserByName(userName) == null ?
null : (int?)services.UserService.GetUserByName(userName).Id)
되어 원하는 것을 보여줍니다 , 컴파일러가 이상하게 작동하지 않는 한 데이터베이스 호출을 두 번 요구한다.
위의 코드를 작성하는 더 좋은 방법이 있습니까?
을 :-) 내 예를 들어 꽤 잘 작동 – VVS