Sayfalar

18 Ağustos 2019 Pazar

params ile Birden Fazla Parametre Yollamak

"params" keyword'ü ile metotların içine birden fazla değer yollayabiliriz.
params sonrası bir dizi tanımlayarak istenilen sayıda değişkeni metot ile yollayabiliriz

        static void Main(string[] args)
    {
                    var result = Add(1,2,3,4,5);
        Console.WriteLine(result); //Sonuç 15
        Console.ReadLine();
        
    }
 
    static int Add(params int[] numbers)
    {
        return numbers.Sum();
    }
}
.

Ref ve Out Keyword

Parametreler, "ref" yada "out" keywordleri kullanılmadığı sürece,  Değer Tiplerin değerlerini tutarlar.

Örn. number1 adlı değişken, aşağıdaki örnekte Add() metotuna parametre olarak eklenmiş ve metot içerisinde de number1=60 değeri atanmıştır. Add() metotu değer döndükten sonra, number1 ConsoleWriteLine ile ekrana yazdırılmıştır. Görüldüğü üzere number1 adlı değişkenin değeri değişmemiştir.
Peki Neden Değişmedi?
Bunun nedeni Main metotda ki number1 değişkeninin sadece "değeri" (20) parametre olarak yollanmıştır. Sonraki işlemler farklı bir değişken olan Add()metodunun parametresi, üzerinden yapılmıştır.  Add() metodu içesindeki parametre number1 ile Main metot'da tanımlanmış number1 aynı isme sahip olsada farklı iki yer tutarlar.

class Program
{
    static void Main(string[] args)
    {
        int number1 = 20;
        int number2 = 50;
 
        var result = Add(number1, number2);
        Console.WriteLine(result);  // Sonuç 110
        Console.WriteLine(number1); // Sonuç 20
        Console.ReadLine();
 
    }
 
    static int Add(int number1, int number2)
    {
        number1 = 60;
        return number1 + number2;
    }
}

Aynı işlem Ref Keywordü ile yaptığımızda ise, parametre olarak değişkenin kendisini Add() metotuna yollanmış oluruz. Böylelikle metot içerisinde atanan yeni değer number1 değişkenin yeni değeri olur. number1 adlı değişkene ref keywordu ile atanmadan önce mutlaka bir değer atanmış olmalıdır.

class Program
 {
     static void Main(string[] args)
     {
         int number1 = 20;
         int number2 = 50;
 
         var result = Add(ref number1, number2);
         Console.WriteLine(result);  // Sonuç 110
         Console.WriteLine(number1); // Sonuç 60 
         Console.ReadLine();
 
     }
 
     static int Add(ref int number1, int number2)
     {
         number1 = 60;
         return number1 + number2;
     }
 }

"out" keywordünün farkı ise, number1 parametreye geçilirmeden, bu değişkene bir değer atama zorunluluğu yoktur. Fakat ilk kullanıldığı yerde( bkz. Add() metotu) değer atanmalıdır!


static void Main(string[] args)
{
    int number1;
    int number2 = 50;
 
    var result = Add(out number1, number2);
    Console.WriteLine(result);  // Sonuç 110
    Console.WriteLine(number1); // Sonuç 60 
    Console.ReadLine();
 
}
 
static int Add(out int number1, int number2)
{
    number1 = 60;
    return number1 + number2;
}

Default Parametreli Metotlar

Default parametreli Metodlar
Metot parametrelerine default değerler atayarak işlem sırasında bu değeri almasını sağlayabiliriz. Örneğin;

class Program
{
    static void Main(string[] args)
    {
 
        var result = Add(5);
 
        Console.WriteLine(result);// Sonuç 35 çıkacaktır.
        Console.ReadLine();
 
    }
 
    static int Add(int number1, int number2 = 30)
    {
        var result = number1 + number2;
        return result;
 
    }
 
}

Default parametreler değer olabileceği gibi "null" olarakta atanabilir.

Bool

Matıksal veri tipidir.
True yada False olarak iki değer alır.

bool condition = false;

Byte

Btye bellekte 8 bit yer tutar.
Değer aralığı;
Max:255
Min :0

byte number= 4;

Short


Short ipi bellekte 16 bit yer turar.
Değer aralığı;
Max: 32767
Min:-32767

short number= 12345;

Long


Long veri tipi bellekte 64 bit yer tutar.
Değer aralığı aşağıdaki gibidir.
long.MinValue = -9223372036854775808
long.MaxValue = 9223372036854775807

long number= 12345;

MVC LOADING TOO SLOW ISSUE