Home  >  Article  >  Backend Development  >  Introduction to the difference between static and non-static methods in C#

Introduction to the difference between static and non-static methods in C#

黄舟
黄舟Original
2017-09-06 13:49:231440browse

The difference between static methods and non-static methods:

1. Static methods can be called without class instantiation, while non-static methods need to be instantiated before they can be called;

2. Static methods can only access static members and methods, and non-static methods can access;

 3. Static methods cannot be marked as override, resulting in derived classes that cannot be overridden, but they can be accessed;

 4 .Static members are initialized the first time they are used. Non-static members are continuous in terms of memory allocation when an object is created, while non-static members are discrete in memory storage. Therefore, in terms of calling speed between static methods and non-static methods, the speed of static methods will definitely increase. Hurry up, because non-static methods need to be instantiated and allocated memory, but static methods do not, but the difference in speed is negligible

When to use static methods and when to use instances Method:

1. A method has nothing to do with the instance object of its class and does not rely on the instance of new, then it should be static

2. It does not require object-oriented concepts Sometimes use static; for example, animals -> RUN, because you may extend cat run and dog run, then you need to use non-static methods

About thread safety:

There is only one instance of a static method. When there are static variables, for high concurrency, all concurrent executions will use that method, and the value of the static variable will change, causing problems;

Of course, concurrency insecurity has nothing to do with the method itself, but with the shared resource, such as a variable. Each thread operates on it and can change its value. Multi-threads (concurrency is actually multi-threading), operate it, If the value is confusing, there will be a problem.

Why use non-static methods

This is a method I wrote. It was originally written as a static method. There is no Others' reasons are because they don't want to instantiate and can save one line of code, and they haven't thought about the difference between static and non-static==! ~~; Of course, it is also possible to write non-static methods;

Reasons

1. Because the method needs to be called repeatedly, going to new every time will cause memory overhead. Use static The method will always be in the memory, and there is no need to re-initialize the data in a new space;

2. No need to do OO;

3. The method does not depend on the content of new;

The more classic static method, basically all static methods in DBHelp

The above is the detailed content of Introduction to the difference between static and non-static methods in C#. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn