Sayfayı Yazdır | Pencereyi Kapat

c# başlangıç seviye,static konusu

Nereden Yazdırıldığı: Datakent
Kategori: Diğer bölümler
Forum Adı: C# & ASP.NET
Forum Tanımlaması: C# ve ASP.NET ile ilgili soru / sorun ve paylaşım bölümü
URL: http://forum.datakent.com/forum_posts.asp?TID=2049
Tarih: 29.Mart.2024 Saat 17:47


Konu: c# başlangıç seviye,static konusu
Mesajı Yazan: fatdem
Konu: c# başlangıç seviye,static konusu
Mesaj Tarihi: 08.Mart.2011 Saat 03:31
bütün elemeanları ve kendisi static olan bir sınıfın static yapıcı kullanması için bir sebep varmıdır? örneklendirebilirmisiniz?



Cevaplar:
Mesajı Yazan: murat turan
Mesaj Tarihi: 08.Mart.2011 Saat 17:06
Merhaba Fatih,
 
static 'in kullanım amacı tüm formlardan/sınıflardan tek bir noktadaki değişkeni yönetmek veya çok sıklıkla kullanacağın bir prosedür veya fonsiyona daha hızlı erişmek. mesela;
 
sisteme login olmuş bir kullanıcının kullanıcı ID sini tutan bir değişkeni Static tanımlayabilirsini. Bu sana ne sağlar?
 
her formdan bu değere erişebilirsin. Bu değere erişerek, online kullanıcının belki sayfa girişinde yetkilerini kontrol ettirmek isteyebilirsin.
 
veya logyazan bir prosedürün olsun. her hata oluştuğunda disk'e log yazmak istiyorsun. bu tür bir prosedür 'ü de static olarak tanımlayabilirsin. veya bir ibareyi şifreleyeceksin. bu tür bir fonksiyonu da static tanımlayabilirsin.
 
mesela web programlamada sisteme login olan kullanıcının bilgileri genelde session nesnesiyle saklanır. Windows formlarda ise bu tür işler için static kullanılabilir.


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil


Mesajı Yazan: fatdem
Mesaj Tarihi: 08.Mart.2011 Saat 22:20
saolsın Murat Hocam. ellerine sağlık. çalışmaya devam:)


Mesajı Yazan: fatdem
Mesaj Tarihi: 22.Mart.2011 Saat 19:15
catch ifadesi içindeki return kaldırınca fout için tanımlanmamış yerel değişken hatası veriyor?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            string rpath = @"D:\test.txt";
            FileStream fout;
            try
            {
                fout = new FileStream(rpath, FileMode.OpenOrCreate);
            }
            catch (IOException exc)
            {
                Console.WriteLine(exc.Message + "okunamadı");
                Console.ReadKey();
                return;
            }

            try
            {
                fout.WriteByte((byte)'p');
            }
            catch (IOException exc) { Console.WriteLine(exc.Message + "hata"); }
            //fout.Close();
            Console.ReadKey();
        }
    }
}


Mesajı Yazan: murat turan
Mesaj Tarihi: 26.Mart.2011 Saat 10:57
tertip merhaba. sen return; ibaresini kaldırdığında ve direkt fout.Close  yaptığında şöyle bir duum oluyor.
 
ya fout nesnesi try bloğu arasında yaratılamazsa? sen yaratılmamış bir nesneyi nasıl Close yapacaksın abi. bu blokta bu durumda istisna fırlatacak. return; ile işlemi sonlandırdığında o bloğa gitmeyeceğinden sorun olmuyor. ama try bloğundan return'u kaldırırsan kodu aşağıdaki gibi dğeiştir abi.
 

            string rpath = @"D:\test.txt";
            FileStream fout = null;
            try
            {
                fout = new FileStream(rpath, FileMode.OpenOrCreate);
            }
            catch (IOException exc)
            {
                Console.WriteLine(exc.Message + "okunamadı");
                Console.ReadKey();
                return;
            }

            try
            {
                fout.WriteByte((byte)'p');
            }
            catch (IOException exc) { Console.WriteLine(exc.Message + "hata"); }
            if (fout != null)
                fout.Close();
            Console.ReadKey();
 
 
*** bu arada kargonu dün teslim ettim.


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil


Mesajı Yazan: fatdem
Mesaj Tarihi: 26.Mart.2011 Saat 23:32
Murat Hocam,
senin dedğin gibi yaptım da. catch bloğu içindeki return u kaldırırsam veriyor "fout nesnesi tanımlanmamış yerel değişken" hatasını.
yani catch te return kullanmazsam ve senin dediğin gibi de "ya dosya yaratılmazsa" catch çalışıp istisna vereceği ve catch sonunda return olmadğı için, catch bloğundan sonra nesneyi fout.close(); ile kapamayamı çalışıyor?

istisnaları çalışırken anladğım catch ten sonra program hata msj verip sonlanıyor, o yüzden kafam karıştı fout.close(); ile catch bloğundaki return un alakası ne die.


Mesajı Yazan: murat turan
Mesaj Tarihi: 30.Mart.2011 Saat 15:45
fatih kargon geriye geldi, verdiğin adres bulunamamış.
 
return bulunduğu satırdan sonraki blokları çalışmaz kılıyor ! haliyle en sondaki fout.close'a hata sonrası gelinemeyeceği için (return; den dolayı) istisna fırlatmıyor.


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil



Sayfayı Yazdır | Pencereyi Kapat