Essential Object Oriented Programming concepts for Selenium C# (static, non-static)

Essential​​ Object Oriented Programming concepts in C#

What are​​ Static & Non-Static functions​​ in C Sharp?

  • Create a new project

  • Give the project name as OOPS

 

  • Right click Program.cs​​ 

 

  • Click Rename​​ and​​ rename it to Static_NonStatic

 

  • Hit enter,​​ the class name should now be changed to Static_NonStatic​​ 

 

  • As​​ you can see​​ above,​​ the main function is a static function​​ because it has the static keyword associated with it.​​ We​​ can also make your own static functions.​​ 

 

  • The​​ sum() function below is static since it has static keyword associated with it

 

  • We​​ can also make non-static functions, example, sendEmail() function below, it does NOT have static keyword associated with it

 

  • So there are 2 types off functions: static and non-static

What are local variables?

  • We​​ can​​ also have​​ local variables inside a static and non-static function. The life/scope of these local​​ variables is only inside the function they are defined​​ 

What are global variables?

  • Global variables are present inside the​​ class but outside the functions​​ viz they are present parallel to the functions inside the class, generally declared at the top of the class, at the very beginning of the class.

 

  • Global variables can be used across all the functions​​ with some conditions. If global variables satisfy those conditions than they can be used across all the functions inside the class.

 

  • Let us define a non-static​​ Global​​ variable (line 12)

 

  • Let us define a static​​ Global​​ variable ‘age’​​ (line 13)

 

  • In summary, we have:
    2 types of functions: static and non-static
    2 types of variables: local and global
    2 types of global variables: static and non-static

  • The local variables are​​ neither​​ static​​ nor​​ non-static.​​ If you try to make a local variable static, you will see an​​ error

Some rules

  • Static function can only access the static stuff​​ (static global variables, static functions):

    Since sum() is a static function, therefore it can be called​​ 
    inside the static main function (line 17)


    But​​ 
    we will get an error if we​​ call sendEmail() function inside static​​ main function, since sendEmail() function is​​ non-static​​ (line 18)


Similarly the static variable age can be accessed inside static main function​​ (line 19)


However​​ 
we​​ will get an error if​​ we​​ try to access non-static name variable​​ ‘name’​​ inside static main function​​ (line 20)

 

  • There is no rule associated with non-static stuff:
    Look at lines 33-35, we are able to access static and non-static stuff inside non-static function​​ sendEmail()

 

  • How can we access non-static stuff inside​​ static​​ Main​​ function? To understand this, lets create a class​​ name Car​​ (right click project >Add >New Item)




 

  • Let​​ us make the Car class public

 

  • Now what all a Car can do? It can start, it can accelerate etc.​​ So let​​ us create 2 non-static functions​​ inside the Car class: start() and accelerate()

 

  • Let​​ us also create a static​​ Main function​​ 

 

  • Now Car will have some properties like: model, price, wheels. So let​​ us define global variables of Car class

 

  • Now inside the Main function we can create the object of a class. To do that, we can use the keyword​​ new​​ followed by the classname

 

  • As soon as an object is created,​​ a memory location gets associated with this object.​​ Inside this object, all the​​ non-static​​ stuff will be residing

 

  • Let us create 3 Car objects, so 3 locations are assigned in the memory, each location having non-static stuff

  • We can also say​​ Car c1 = new Car()
    Note:​​ ‘new Car()’ is the actual object, c1 is the reference​​ pointing​​ towards​​ the​​ new​​ object​​ Car​​ (c1​​ is not the object)



  • Now just type​​ c1.​​ You will see all the non static stuff associated with this object​​ [example, model, price, start() etc]

 

  • So we can access​​ the​​ non-static​​ stuff​​ inside the static​​ Main function​​ only​​ by creating an​​ object​​ of the class, not otherwise​​ ​​ 

 

  • Notice line 26​​ below. We are trying to access non-static start() function directly inside the static Main function, hence getting an error (we saw this while discussing rules)​​ 

  • Similarly we can create another object​​ and​​ assign the properties (non-static stuff)

 

  • Let us now try to print the models of both the cars​​ (lines 25, 34)
    ​​ 

 

  • In a project,​​ we can have only 1 Main function. Right now we have​​ 2​​ Main function:​​ in Car.cs​​ and in​​ Static_NonStatic.cs
    T
    o execute the Main function of Car.cs class, we can either comment the Main function in Static_NonStatic.cs class or​​ double click ‘Properties’ (seen under Project on RHS) and​​ select OOPS.Car from​​ the ‘Startup object’ dropdown

 

  • Save the changes​​ and run the project,​​ notice that models are printed in​​ the o/p

Similarly we can print other properties as well.

Thank you for reading!

Share On

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on tumblr
Share on email

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

Lifetime Membership Club

LIFETIME MEMBERSHIP BIG SALE - ALL LIVE COURES JUST - 10000 RS/149 USD
Attend All Live courses in just 10000 rs / $149 - offer ends 25th April 2024