Здравствуйте, ivs13, Вы писали:
I>Можно ли как-то объявить в классе на C# свойство по умолчанию? I>Например, есть класс MyClass с List внутри. Нужно, чтобы можно было написать myClass.Count, а не myClass.list.Count
Здравствуйте, ivs13, Вы писали:
I>Можно ли как-то объявить в классе на C# свойство по умолчанию? I>Например, есть класс MyClass с List внутри. Нужно, чтобы можно было написать myClass.Count, а не myClass.list.Count
Default Properties остались в васике, но с изменениями, в частности, "Visual Basic 2008 does not support parameterless default properties, and consequently does not allow this programming shortcut.".
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Как объявить в классе свойство по умлочанию?
Можно ли как-то объявить в классе на C# свойство по умолчанию?
Например, есть класс MyClass с List внутри. Нужно, чтобы можно было написать myClass.Count, а не myClass.list.Count
Re: Как объявить в классе свойство по умлочанию?
От:
Аноним
Дата:
05.11.10 11:20
Оценка:
Здравствуйте, ivs13, Вы писали:
I>Можно ли как-то объявить в классе на C# свойство по умолчанию? I>Например, есть класс MyClass с List внутри. Нужно, чтобы можно было написать myClass.Count, а не myClass.list.Count
public class MyClass { List list = new List(); public int Count { get { return list.Count } } }
Re[2]: Как объявить в классе свойство по умлочанию?
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
class MyList
{
private List<int> list = new List<int>();
public static implicit operator List<int>(MyList l) { return l.list; }
public MyList() { list.Add(1); list.Add(2); list.Add(3); }
}
static void Main(string[] args)
{
MyList myList = new MyList();
for (int i=0; i < ((List<int>)myList).Count; i++)
Console.WriteLine(((List<int>)myList)[i].ToString());
Console.ReadLine();
}
}
}
Так получается, но не совсем то, требуется явное преобразование: ((List<int>)myList).Count; без него не хочет. А хотелось бы просто myList.Count, myList.Add, myList[]...
Re[3]: Как объявить в классе свойство по умлочанию?
Здравствуйте, ivs13, Вы писали:
WH>>Но есть языки в которых это возможно. I>Я знаю, например, Delphi5
А так чтобы сразу несколько "свойств по умолчанию"?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Как объявить в классе свойство по умлочанию?
Здравствуйте, ivs13, Вы писали:
WH>>А так чтобы сразу несколько "свойств по умолчанию"? I>Хм... как тогда определить, какое из них наиболее "умолчабельное"?
Предлагается самому написать макрос и самому в макросе решить, что нужно. Например, при конфликте можно выдывать ошибку _компиляции_. Или предупреждение и "подцеплять" первое попавшееся или не просто "попавшееся", а выбранное по некоей стратегии, коей может параметризоваться макрос
В общем, как желаете, так и делайте и что сделаете то и получите
Help will always be given at Hogwarts to those who ask for it.
Re[6]: Как объявить в классе свойство по умлочанию?
Здравствуйте, _FRED_, Вы писали: _FR>Предлагается самому написать макрос и самому в макросе решить, что нужно. Например, при конфликте можно выдывать ошибку _компиляции_. Или предупреждение и "подцеплять" первое попавшееся или не просто "попавшееся", а выбранное по некоей стратегии, коей может параметризоваться макрос
Если не затруднит, приведите небольшой пример, чтобы понятно было, как такое делается.
Re[7]: Как объявить в классе свойство по умлочанию?
Здравствуйте, ivs13, Вы писали:
_FR>>Предлагается самому написать макрос и самому в макросе решить, что нужно. Например, при конфликте можно выдывать ошибку _компиляции_. Или предупреждение и "подцеплять" первое попавшееся или не просто "попавшееся", а выбранное по некоей стратегии, коей может параметризоваться макрос
I>Если не затруднит, приведите небольшой пример, чтобы понятно было, как такое делается.
Здравствуйте, ivs13, Вы писали:
_FR>>С этим лучше обратиться в форум Nemerle.
I>А, так это другой язык программирования... я и с C# толком не разобрался, а тут еще что-то другое
По поводу шарпа я уже сказал, что нельзя
Help will always be given at Hogwarts to those who ask for it.