【发布时间】:2015-11-05 07:14:50
【问题描述】:
我正在尝试为我正在使用的某些类型编写几个扩展。基本类型是“InputField”。 “ListField”继承自“InputField”。我将展示我正在尝试做的事情:
public static void LoadInputField(this InputField input, CustomField field)
{
SetValues(ref input, field);
}
public static void LoadInputField(this ListField input, CustomField field)
{
SetValues(ref input, field);
var optionItems = (from o in field.CustomFieldOptions
select new ListItem(o.OptionLabel, o.CustomFieldOptionId.ToString()));
input.AddChoices(optionItems.ToList());
}
private static void SetValues(ref InputField input, CustomField field)
{
input.CustomFieldId = field.CustomFieldId;
input.ResponseTitle = field.ColumnName;
input.Prompt = field.ColumnCaption;
input.DisplayOrder = field.SortOrder;
input.Required = !string.IsNullOrEmpty(field.ColumnRequiredMessage);
input.ErrorClass = "text-danger";
if (input.Required)
input.RequiredMessage = field.ColumnRequiredMessage;
}
SetValues(ref input, field); 处的 ListField 类型错误的扩展。消息说,''ref' 参数类型与参数类型不匹配。'
也许这不是最好的方法,但我愿意选择。
【问题讨论】:
-
在这种情况下为什么需要
ref?我看不出有任何理由使用它... -
你不需要在这里使用
ref,只需删除ref就可以了。
标签: c# extension-methods