이 예에서는 준다 "형식 또는 네임 스페이스 이름 '합니다 MyType이'을 (를) 찾을 수 없습니다 (당신은 using 지시문 또는 어셈블리 참조가?)"C#에서 별칭 지시문을 사용하여 재귀를 선언 할 수 있습니까?
using MyType = System.Func<System.Int32, System.Tuple<System.Int32, MyType>>;
는 모든 가능한 그것을 것은 재귀 형식을 선언합니다 이거?
이 예에서는 준다 "형식 또는 네임 스페이스 이름 '합니다 MyType이'을 (를) 찾을 수 없습니다 (당신은 using 지시문 또는 어셈블리 참조가?)"C#에서 별칭 지시문을 사용하여 재귀를 선언 할 수 있습니까?
using MyType = System.Func<System.Int32, System.Tuple<System.Int32, MyType>>;
는 모든 가능한 그것을 것은 재귀 형식을 선언합니다 이거?
아니요, 가능하지 않다고 생각합니다. using
구문의 오른쪽은 별칭을 할당하기 전에 실제 형식으로 확인해야합니다. 귀하의 경우, 오른쪽 측면을 해결하기 위해 컴파일러는 allias를 정의해야합니다.이를 통해 오른쪽 측면을 해결해야합니다. 이 재귀적인 문제는 끝이 없기 때문에 컴파일러는 분명히 신경 쓰지 않을 것입니다. 당신의 별칭을 컴파일 관리 컴파일러를 가정 할 수 있으며 내가 그랬어이 :
MyType mytype = x => Tuple<int, MyType>.Create(x, ???);
무엇을 할 수 I 반환 값을 정의하는 함수의 본문에서 가능한 넣어 ? 결국 나는 어딘가에 구조형을 반환해야합니다.
MyType myType = x => 터플
하지만 당신이 옳다고 생각합니다.이 접근법은 결과보다 더 많은 두통을 초래할 것입니다 ... –
사용 지침 (파일의 맨 위에 있음)과 MyType이 있다고 가정하면 네가 가능합니다. 예를 들어, 이것은 완벽하게 합법적입니다.
using System;
using String = System.Func<System.String>;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
String myString =() => "Foo";
// myString is now a function returning the string "Foo". Yikes.
}
}
}
즉, 절대로 코드 검토를 통과하지 못합니다. 혼란에 대해 이야기하십시오.
나는 그가 원하는 것을 생각하지 않는다 : "String"을 "Foo"로 대체하고 함수를 리턴 한 함수를 반환하는 함수가있다. –
문자열 예제는 " 네임 스페이스 이름 'String'을 찾을 수 없습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) " –
컴파일되도록 편집되었습니다. –
나는 보통 이것을 묻지 않지만 왜 ...? –
저는 C#의 액터 모델의 최소 인코딩을 선언하려고 노력하고 있습니다. 따라서 배우의 본질을 변화시키는 동작을 모델링하기 위해 재귀 함수 별칭을 사용하겠습니다. –
나는 그것에 대해 몇 분 이상 생각하지 못했지만 내 생각에는 아마도 당신은 일종의 일반 공장을 원할 것입니다. 'public Func> 액션을 가진 객체를 반환하는'CreateActor ''하지만 나는 머리 꼭대기에서 어떤 구체적인 것을 가지고 있지 않습니다. –