Creating own attributes, and extensible overloads C#

Hi there,
i am using Unity from a couple of months, i work in C#.
I would like to create a custom attribute like

[VOID (1)] public void call () {}
[Param(1)] public GameObject target;

I want that i can write my own attributes in my script, and then the other script can call this voids or get set the variable by reading these attributes.
Edit: the point 2 is solved here, answer given by MeltDown
Hope someone can help
Thanks.
bye

Creating custom Atributes Creating Custom Attributes (C# and Visual Basic) | Microsoft Learn
Accessing Attribues by reflection Accessing Attributes by Using Reflection (C# and Visual Basic) | Microsoft Learn

if you like video tutorial, than you can check out this https://www.youtube.com/playlist?list=PLRwVmtr-pp05brRDYXh-OTAIi-9kYcw3r ( C# in general, not Unity relatet )

thanks a lot, it helped me, now i am studying it, and then i will let you know. thanks!