Hello .NET, D Here Calling
Mosfet
mosfet at anonymous.org
Tue Dec 23 05:01:39 PST 2008
bearophile wrote:
> Chad J Wrote:
>> This is exactly where I'm coming from. I used to use C# properties a
>> lot. They are super effective.
>
> In C# you can use for example:
>
> class TimePeriod {
> private double seconds;
>
> public double Hours {
> get { return seconds / 3600; }
> set { seconds = value * 3600; }
> }
> }
>
You can also write it in native C++ using microsoft extension:
// declspec_property.cpp
struct S {
int i;
void putprop(int j) {
i = j;
}
int getprop() {
return i;
}
__declspec(property(get = getprop, put = putprop)) int the_prop;
};
int main() {
S s;
s.the_prop = 5;
return s.the_prop;
}
>
> Or just:
>
> public double TotalPurchases { get; set; }
>
>
> Some people have proposed:
>
> public int property Myval {
> get;
>
> set {
> if (value > 10)
> throw new Exception();
> else
> Myval = value;
> }
> }
>
>
> Time ago I have written this for D1, I don't know if it can be useful:
>
> import std.metastrings: Format;
>
> template AttributeGetSet(Type, string name) {
> const AttributeGetSet = Format!("
> private %s %s__;
> public %s %s() { return this.%s__; }
> public void %s(int %s__local) { this.%s__ = %s__local; }
> ", Type.stringof, name, Type.stringof, name, name, name, name, name, name);
> }
>
>
> C# also has indexers:
>
>> Indexers allow instances of a class or struct to be indexed just like arrays. Indexers resemble properties except that their accessors take parameters.<
>
> http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
>
> Usage example:
>
> class SampleCollection<T> {
> private T[] arr = new T[100];
>
> public T this[int i] {
> get {
> return arr[i];
> }
>
> set {
> arr[i] = value;
> }
> }
> }
>
> But to me that looks a lot like the opIndex/opIndexAssign/opIndexLvalue of D.
>
> Bye,
> bearophile
Finally I don't think very relevant to have a D.Net because people doing
.NET want to have Microsoft support, and it will never be used in real
production software.
The only advantage I see is to talk more about D that is for now quite
discreet.
More information about the Digitalmars-d
mailing list