Custom attributes C#

janderson askme at me.com
Sat Sep 29 18:06:05 PDT 2007


Daniel Keep wrote:
> 
> Janice Caron wrote:
>> On 9/27/07, Bruno Medeiros <brunodomedeiros+spam at com.gmail> wrote:
>>> It's a concept similar to Java's annotations, aren't you familiar with
>>> those either?
>> Nope. I have always found C and C++ (and now D) to be perfectly
>> adequate for every need I've ever had.
>>
>> So tell me, what are these things _for_? What's the _point_ of them?
>> What do they do, and why would adding them to D be a good idea.
>>
>> What will it enable me to do that I can't already do in C, C++ or D?
> 
> Look, ignore the syntax; it's not important.  Pretend I used @s or $s or
> whatever makes you comfortable.
> 
> The point is, it's a system for annotating declarations.  Like how you
> scribble in the margins of a book next to a particularly inane
> paragraph: "this guy is nuts!"  You know... *metadata*.
> 
> And I would have thought the examples I gave before were a pretty good
> example of why they're useful.  Look at the first class; I've used them
> to annote fields with information on how they should be serialised.  In
> the second one I've used them to indicate how an object might be bound
> to a UI.
> 
> Ary has an even better example: specifying how to bind an object to a
> database table.  That's like what ActiveRecord (the real magic behind
> Ruby on Rails) does.  It'd practically give us half of D on Rails.  :P
> 
> The point is to give programmers a way of adding extra information about
> a declaration that you wouldn't normally be able to convey.
> 
> Granted, you *could* do this in D right now; in much the same way you
> can do OO programming in assembler.  You could probably fake it with
> variadic templates and structs, etc., but it'd be ugly as heck.
> 
> 	-- Daniel

I agree, whatever the solution is (even if its just in the standard 
library) it needs to be standard otherwise it defeats the purpose of 
being able to simply import 3rd-party libraries that will work with your 
markup.

-Joel



More information about the Digitalmars-d mailing list