일부 값으로 클래스 필드를 설정하는 동적 메서드를 내보내려고하고 일반 필드의 형식이 struct 인 경우 다음과 같이 새 구조체로 필드를 설정하고 싶습니다. var myStruct = new SomeStruct();
.생성자가없는 새 구조체를 내보내는 방법
하지만 그 구조체의 기본 생성자를 찾을 수 없습니다.
var type = valueForField.GetType ();
if(type.IsValueType && !type.IsPrimitive && !type.IsEnum)
{
emit
.ldarg_0
.newobj (type.GetConstructor(Type.EmptyTypes))
.stfld (field);
continue;
}
그것은 라인 .newobj (type.GetConstructor(Type.EmptyTypes))
에 실패하기 때문에 NEWOBJ 기능에 null을 전달
이 사람이 어떻게 생성자를 기본 통해 새로운 구조의 생성을 방출하는 방법을 말해 줄래?
보조 메모와 마찬가지로 C#에서 매개 변수없는 생성자를 만들 수는 없지만 .NET에서는 첫 번째 문장이 틀림없이 정확하지 않을 수 있습니다. http://msmvps.com/blogs/jon_skeet/archive/2008/12/10/value-types-and-parameterless-constructors.aspx를 참조하십시오. – kvb