I'm creating a Web site using C#/Asp.net. I want to minimize object creation by setting some classes and properties as static. But I don't want those objects to be reused by subsequent calls to the Web server. I want the static objects to be disposed of as soon as a request has been processed. And if, during processing, a new request comes in, I don't want the new request to see data in the prior request's static classes and properties. So, should I be using static or not?
No, you shouldn't be using static for your scenario - static means "shared" resource. That means if the member is static, it will be used (shared) by all instances of the current class. If the objects are not extremely big / expensive to create accordingly to the number of requests, it doesn't really matter for some kind of performance. GC will get rid of them as soon they are not relevant anymore. At this point, it seems as a overengineering/premature optimization, which would be useless, unless you are dealing with hundres of thousands request per seconds etc.