public Alphabet(params char[] list)
{
this.ExceptionInitializer();
try
{
if (list != null) _alphabet = list;
else throw this.NullableAssignment; //add exception handler;
this._charCounter = list.Length;
}
catch (this.NullableAssignment)
{
// var x = new Alphabet();
// this = x; //FAIL!
}
}
0
A
답변
0
이 작업을 수행 할 수 - 가장 가까운 점은 Alphabet
돌려주는 static 팩토리 메소드 생성하는 것입니다 :
public class Alphabet
{
private Alphabet(params char[] list)
{
//setup
}
public static Alphabet Create(params char[] list)
{
return list == null
? new Alphabet()
: new Alphabet(list);
}
}
주어진 있지만 귀하의 예를
public Alphabet(params char[] list)
{
_alphabet = list ?? new char[] { };
this._charCounter = _alphabet.Length;
}
0
나는 당신이하려는 것을 모른다. ExceptionInitializer 및 NullableAssignment를 표시 할 수 있습니까? 매개 변수가 전달되지 않을 때 _alphabet
에 빈 배열을 할당 하시겠습니까?
public Alphabet(params char[] list)
{
if(list != null)
{
_alphabet = list;
}
else
{
_alphabet = new char[0];
}
this._charCounter = _alphabet.Length;
}
이 인수를 무제한으로 또는 명시 적으로 널 (null)에 대한 작동합니다
당신이 제안하는 코드는 C#에서 유효하지 않은new Alphabet('f', 'o', 'o')
new Alphabet()
new Alphabet(null)
2
, 당신은 이에 값을 할당 할 수 없습니다. 이 경우 특별한에 list
이 빈 상태 (empty)이 아닌,
public Alphabet() { /* Do some default initialization here */ }
public Alphabet(params char[] list) : this() // The call to the default constructor.
{
if (list != null)
{
_alphabet = list;
this._charCounter = list.Length;
}
}
0
난 당신이 Alphabet
이 list
의 요소를 처리하기위한 생성자를 원하는 같은데요 : 당신이 할 수있는 것은이 같은 기본 생성자에 전화를 사용하는 것입니다 "빈 객체"를 사용해야합니다. 불행히도 이것은 일반적인 생성자를 사용하여 수행 할 수 없습니다. 당신이 대신 필요한 것은 공장 방법 :
private static Alphabet _emptyAlphabet = new Alphabet();
private Alphabet(char[] list) { /* etc */ }
public Alphabet CreateAlphabet(params char[] list)
{
if (list == null)
{
return _emptyAlphabet;
}
else
{
return new Alphabet(list);
}
}
0
public Alphabet() {
ConstructEmptyAlphabet();
}
public Alphabet(char[] list) {
if (list == null) {
ConstructEmptyAlphabet();
} else {
_alphabet = list;
this._charCounter = list.Length;
}
}
private void ConstructEmptyAlphabet() {
…
}
관련 문제
- 1. 하위 클래스 생성자 예외가 부모 클래스 인스턴스를 벗어남
- 2. C++ 클래스, 생성자 초기화 중 값 할당
- 3. Objective-C 클래스 생성자
- 4. Process.Exited 처리기에서 예외를 throw하는 중
- 5. 플래시 IDE에서 인스턴스를 추가 할 때 슈퍼 상수로부터 인스턴스 이름을 할당하는 생성자?
- 6. C++ catch 생성자 예외
- 7. 예외 처리 생성자
- 8. 정적 생성자 및 예외
- 9. 스칼라의 경우 클래스 생성자
- 10. PHP 클래스 속성 변수를 조건부로 할당하는 방법
- 11. Spring 3.0 예외 처리기에서 컨텍스트 정보 얻기
- 12. 코드가 예외 처리기에서 호출되는지 확인합니다 (명령문 사용)?
- 13. AS3 클래스/기본 클래스 생성자
- 14. Serializable 사용자 정의 예외 클래스?
- 15. 메모리 jar/클래스 파일 실행 중
- 16. 구조체 배열에 값을 할당하는 중!
- 17. 일반 예외 처리기에서 __Canon 형식 문제를 해결하려면 어떻게해야합니까?
- 18. MATLAB을위한 신속하고 지저분한 클래스 생성자?
- 19. 파이썬에서 다른 클래스의 클래스 인스턴스를 만드는 방법
- 20. 이동 생성자 기본 클래스 이동 생성자
- 21. 상위 생성자 앞에서 하위 클래스 생성자 호출
- 22. 템플릿 클래스 복사 생성자 작성 방법
- 23. 추상 클래스 생성자
- 24. 자바 하위 클래스 생성자
- 25. 추상 클래스 및 생성자
- 26. 클래스 템플릿 생성자 특수화
- 27. 콜링 기본 클래스 생성자
- 28. VectorList 클래스 생성자
- 29. CakePHP의 클래스 생성자 정상 PHP에서
- 30. C++ 예외 클래스 소스 코드
내가 항구 건설을 사용하려면 : 더 간단는 널 (null)의 자리에 빈 배열을 할당하는 것 ctor 매개 변수없이 기본 영어 알파벳을 만듭니다. 공장 방법을 사용하는 것이 내 문제를 해결하는 가장 좋은 방법이라고 생각합니다. 여러분 모두에게 감사드립니다. – xWoundwortx