안녕하세요.
질문하신 내용은 다음 경로를 참고해 보세요.
https://github.com/dotnet/csharplang/blob/main/proposals/csharp-7.0/pattern-matching.md#scope-of-pattern-variables
식이 메서드 안이면 메서드 안에서는 사용이 가능하도록 되어 있네요.
그 외에는 해당 식의 구문 안에서만 접근 가능하구요.
언어를 설계한 분들이 규칙을 그렇게 잡아놓은 것 같습니다.
On 2021-04-16 오후 2:38:00, '한민식' wrote:
안녕하세요.
1)
static void PrintStars(object o)
{
if (o is null)
{
return;
}
if (o is string)
{
return;
}
if (!(o is int num))
{
return;
}
Console.WriteLine(new String('*', num)); // 가능
}
2)
object x = 1234;
if (!(x is int num))
{
Console.WriteLine("...");
}
Console.WriteLine(num); // 오류
질문입니다..
왜 1) 에서는 if문 밖에서 num을 쓸 수 있는데 2)에서는 if문 밖에서 num을 쓸 수 없나요?
매번 너무 초보적인 질문만 하는 것 같아요 ㅠ