[Kde-bindings] Using generics in Qyoto
Richard Dale
rdale at foton.es
Thu Jan 11 11:50:59 UTC 2007
I installed the gmcs mono C# compiler with generics support yesterday, and
played with it a bit.
There is no QDBusReply class in the Smoke library as it's template based. For
QtRuby I wrote a replacement in ruby, and for Qyoto I think we can do the
same in C# using templates:
class QDBusReply<E> {
private E m_value;
public QDBusReply(E foobar) {
m_value = foobar;
Console.WriteLine("Constructing an int QDBusReply {0}", foobar);
}
public E value() {
return m_value;
}
}
..
QDBusReply<int> bar = new QDBusReply<int>(13);
Console.WriteLine("QDBusReply.value {0}", bar.value());
So 'bar.value()' has a type of int here.
Where we have ArrayLists at the moment we could use the generic List type
instead, which would look more like the original C++ api:
List<int> foo = new List<int>();
foo.Add(1);
Console.WriteLine("foo[0]: {0}", foo[0]);
I think we just need to build Qyoto with gmcs instead of mcs, and don't need
to change anything much so it looks as though it should be easy to switch.
-- Richard
More information about the Kde-bindings
mailing list