제목이 말한대로. Related to this question.C#이 char에 대한 더하기 연산을 정의하지 않는 이유는 무엇입니까?
다음 코드가 작동하지 않는 이유는 무엇입니까? 논리적으로 합리적인 것처럼 보입니다.
string foo = 'a' + 'b'; // Fails with an invalid int -> string conversion
지금, 위의 링크 된 질문에서 우리가 여기서 무슨 일이 일어나고 있는지 추론 할 수 있습니다 컴파일러는 암시 문자 사용 - 다음 그 값을 추가,> INT 변환. 이것은
char
s에 대해 정의 된 더하기 연산이 없어야한다고 믿게합니다! 이것은 사실입니까, 그렇다면 왜 그곳에 없습니까?
EDIT : 일반적 합의는 내가 정의 할 것으로 기대되는만큼 그렇게 정의되지 않은 것이 아니라는 것입니다.
두 개의 문자를 문자열로 변환하는 추가 사항을 의미하는 경우 컴파일러에서 사용자가 원하는 것을 알지 못하기 때문입니다. 부여 된, 그것은 기본 동작으로 추가 할 수 있지만 어쩌면 다른 사람들이 실제로 정수로 추가 할 char 선호합니다 ... 그래서 여기에 첫 번째 char에서 문자열을 인스턴스화 할 것이다 다음 두 번째 char 수동으로 추가 할 수 모든 오해를 피하십시오. – RedGlyph
@redglyph : 대답이라면 나는 그것을 upvote 줄. –