全局范围程序不能通用?此限制是否有技术原因?
Global scope procedures cannot be generic? Is there a technical reason for this restriction?
为什么不允许在全局过程中使用通用类型。例如:
procedure Foo<T>(bar : T);
编译器错误:E2530 全局过程或函数不允许类型参数
但是作为class方法是可以接受的
TFoo = class(TObject)
public
class procedure Foo<T>(bar : T);
end;
这显然是我的解决方法,但我想知道限制是否有实际的技术原因。
全球范围内的过程不能通用没有技术原因。
如果设计者想实现这个,那么就可以做到。
为什么不允许在全局过程中使用通用类型。例如:
procedure Foo<T>(bar : T);
编译器错误:E2530 全局过程或函数不允许类型参数
但是作为class方法是可以接受的
TFoo = class(TObject)
public
class procedure Foo<T>(bar : T);
end;
这显然是我的解决方法,但我想知道限制是否有实际的技术原因。
全球范围内的过程不能通用没有技术原因。
如果设计者想实现这个,那么就可以做到。