我想创建一个接受一个函数的函数,该函数接受特定类型的参数作为参数。例如:
myFn(Function paramFn) {
paramFn([1, 2, 3]);
}
如何确保paramFn接受List<int>
作为唯一参数?
答案 0 :(得分:6)
您可以使用typedef
来定义您想要的签名,如Kul's answer中所述,或者您可以简单地在参数中内联函数签名:
myFn(void paramFn(List<int> l)) {
paramFn([1, 2, 3]);
}
答案 1 :(得分:5)
您可以使用//examine custom annotations for shaping the schema in the database.
foreach (var entityType in builder.Model.GetEntityTypes())
foreach (var property in entityType.GetProperties())
{
var memberInfo = property.PropertyInfo ?? (MemberInfo)property.FieldInfo;
var defaultValue = memberInfo?.GetCustomAttribute<DefaultAttribute>();
if (defaultValue == null) continue;
if (defaultValue.UseAsLiteral)
property.Npgsql().DefaultValueSql = defaultValue.DefaultValue.ToString();
else
property.Npgsql().DefaultValue = defaultValue.DefaultValue;
}
将符号与满足所需签名的函数相关联。像
typedef
答案 2 :(得分:1)
这就是here的用途,虽然我不确定强模式会如何严格执行它。