>I am using Visual Studio.Net for my IDE. Is there a way >with this tool and IntelliSense that I can tell what >methods and properties are static? Is it any method or >property that shows up in the list when typing something >like the following?
>DateTime.
>I noticed the IntelliSense shows a different list with >that line of code than if I type this:
>DateTime dt = new DateTime();
>dt.
That is exactly the answer to your question. In C# you can access the static methods/properties/attributes only by using the name of the class. So when you write
DateTime.
you see the static methods/properties/attributes.
Of course, in your second example you see the methods/properties/attributes associated with an instance of the class, i.e. the non-static ones.
You have to understand that there is a logical difference between static and non-static components (the static ones were not introduced just for fun

).
Let's take the example for DateTime.Now. Suppose that it is not a static method and that you need in a program 1000 DateTime objects. Now, every time you do
DateTime varn = new DateTime();
you will have initialized in the memory a new object of type DateTime named varn that will contain an object of type DateTime named Now that represents the current date and time. You will have for each object the date and time when it was created.
On the contrary, by being a static property, when you access it, the class reads the system date&time and initializes the property that is sent to you. This happens in the get() part for the property.
Now, if Now would have been an attribute and not a property, its value had been with no sense. Why? Because a static attribute is initialized when the class is used for the first time, and you have to give a value for it. So by accessing directly the attribute, you would only see the value given by the developper of the class.
So, if we summarize:
1) static properties/fields/methods correspond and can be accessed only by a class;
2) non-static properties/fields/methods correspond and can be accessed only by instances of a class (i.e. objects);
3) there is a logical difference between static properties/fields/methods and their non-static correspondents;
4) there is a difference between static fields, static properties and static methods.
I would advice you to read the C# language reference from MSDN online in order to clarify these problems.
I will leave chiph to answer to your second question. It's his example
