The Static keyword in C# with Example
Static is a keyword or a modifier which is use
to make a class, methods or variable properties as not instantiable,
that means we cannot instantiate the items which we declared with a static modifier.
The static members
which we declared can be accessed directly with a type name. Suppose if we
apply a static modifier to a class
property or to a method or variable, then we can access those static members
directly with a class name, instead of creating an object of a class to access
those properties.
Static Variables Declaration
The following is the
example of defining a class with static properties and those can be accessed
directly with the type instead of a specific object name.
class User
{
public static string name;
public static string location;
public static int age;
}
From the above example, we defined
variables with static
keyword, we can then
access those variables directly with a type name like User.name, User.location and User.age.
Below is the examples of how to access the variables directly
with a type name in C#.
Console.WriteLine(User.name);
Console.WriteLine(User.location);
Console.WriteLine(User.age);
The above statements, shows that we can
access our static properties
directly by using class name instead of with class instance using class and dot
notation.
Generally, instance of a class will contain a separate copy of
all instance fields so the memory consumption will increase automatically, but
if we use static
modifier there is only one copy of
each field so automatically the memory will be managed efficiently.
We can use static
modifier with classes, methods, properties, constructors, operators, fields
and with events but it cannot be used with indexers, finalizers or types other than classes.
Static Keyword Example in C#
The following is the example for
creating a class by including both static and non-static variables &
methods. Here we can access non-static variables and methods by creating an
instance of the class, but it is not possible for us to access the static
fields with an instance of the class so the static variables and methods can be
accessed directly with the class name.
using System;
namespace CsharpnaijaTutorial
{
class User
{
// Static
Variables
public static string name, location;
//Non Static
Variable
public int age;
// Non Static
Method
public void
Details()
{
Console.WriteLine("Non Static Method");
}
// Static
Method
public static void Details1()
{
Console.WriteLine("Static Method");
}
}
class Program
{
static void Main(string[] args)
{
User user = new User();
user.age = 32;
user.Details();
User.name = "Musa Gadabs";
User.location = "Abuja";
Console.WriteLine($"Name: {User.name}, Location: {User.location}, Age: {user.age}");
User.Details1();
Console.WriteLine("\nPress Enter Key to Exit..");
Console.ReadLine();
}
}
}
From the above example,
we created a class called “User” with static and non-static variables
& methods. We are accessing non-static variables and
methods with an instance of User class and static fields and methods are accessed directly with the class
name (User).
Thank you
References
1. Tutlane
2. Guru99
Comments
Post a Comment