У меня есть следующий класс ...GetEnumerator Ошибка с пользовательским типом
class gridRecord
{
//Constructor
public gridRecord()
{
Quantity = new quantityField();
Title = new titleField();
Pages = new pagesField();
}
private quantityField quantity;
private titleField title;
private pagesField pages;
internal quantityField Quantity
{
get { return quantity; }
set { quantity = value; }
}
internal titleField Title
{
get { return title; }
set { title = value; }
}
internal pagesField Pages
{
get { return pages; }
set { pages = value; }
}
}
Я хочу, чтобы иметь возможность получить имя каждого поля в виде строки, так что я могу позже создать датируемый с из того, чтобы указать каждый колонка.
List<gridRecord> lgr = new List<gridRecord>();
lgr = populatedList();
foreach(gridField gf in lgr[0])
MessageBox.Show(gf.ToString());
Но я получаю эту ошибку:
Error 1 foreach statement cannot operate on variables of type 'XML__Console.gridRecord' because 'XML__Console.gridRecord' does not contain a public definition for 'GetEnumerator'
Я полагаю, мне нужно, чтобы наследовать форму и интерфейс или что-то, но не уверен, как или какой.
Сетка поле Добавлено ...
class gridField : Validateit
{
public gridField()
{
Value = "---";
isValid = false;
message = "";
}
private string value;
protected bool isValid;
private string message;
public string Value
{
get { return this.value; }
set { this.value = value; }
}
public bool IsValid
{
get { return isValid; }
set { isValid = value; }
}
public string Message
{
get { return message; }
set { message = value; }
}
public override void Validate()
{
}
}
quantityField добавил ниже других полей так же
class quantityField : gridField
{
public void validate()
{
if (isQuantityValid(Value) == false) { Value = "Invalid";}
}
public static bool isQuantityValid(string quantity)
{
if (quantity.Length > 3)
{
return true;
}
else
{
return false;
}
}
}
IEnumerable - https://msdn.microsoft.com/en-us/library/system.collections.ienumerable(v=vs.110).aspx –
вы можете дать более подробную информацию? – GasDev
Как в стороне C# позволяет ваши свойства быть похожими на это внутреннее значение Количество элементов {get; set;} –