using System;
//Indexer Overloading
public string this[int postion]
{
get {
return MyData[Position];
}
set {
MyData[Position] =value;
public string this[int Position]
get{
return myvar[Position];
}set{
myvar [Position] =value;
public string this[string strdata]
int count=0;
for(int i=0;i<arrsize;i++)
if(myvar[i]==strdata){
count++;
return count.ToString();
set{
for(int i=0;i<arrsize;i++){
if(myvar[i]==strdata)
myvar[i]=value;
//Method overloading
/*
class shape
public void area(int side)
Console.WriteLine("Area_1");
public void area(int l,int b)
Console.WriteLine("Area_2");
public void area(double r)
Console.WriteLine("Area_3");
public void area()
Console.WriteLine("Area_4");
}}
public class MainClass
public void Main(){
shape s=new shape();
s.area();
*/
//Extension Methods
static class Mynewclass{
public static int MyExtensionMethod(this string Number)
Console.WriteLine("Myextenstion");
return 0;
public static int MyStaticMethod(string Number)
Console.WriteLine("Mystatic");
//Number should be static as it is in main by deafult it is static//
public static void Main()
string Number="100";
int a=Number.MyExtensionMethod();
int b=Mynewclass.MyStaticMethod(Number);
//inheritance with deafult acess//
class newclass{
internal newclass(){
Console.WriteLine("Class1");
class nextclass : newclass
internal nextclass(){
Console.WriteLine("newclass");
public class Program
nextclass nc=new nextclass();
Console.WriteLine((nc).GetType());
Console.WriteLine("Hello World");