Merhaba arkadaşlar;
Bugün C# ın temellerinden olan değişkenler üzerinde üzerinde önemli bir konudan söz edeceğiz. Bir çoğunuz belki de anlatmaya çalışacağım konuyu biliyordur; fakat bilmeyenlerin ve öğrenmek isteyenlerin olabileceğini düşünerek konuya anlatmanın faydalı olacağını düşünüyorum.
Öncelikle iki sayfamız olduğunu düşünelim. Bunlardan biri Müsterilerin yer aldığı Musteri.aspx sayfası olsun. Diğeri de siparişlerin yer aldığı Siparis.aspx olsun. Şimdi müşteri sayfasında yer alan Musteri adının tutulduğu bir label daki bilgiyi Siparis sayfasına almamız gerektiğini düşünelim. Bu durumda yapmamız gereken sıralama aşağıdaki gibi olacak arkadaşlar.
İlk olarak ana sayfamız olan Musteri.aspx sayfasındaki Müşteri adının tutulduğu label i bir değişkene atalım. Değişkenimizi ise public static Musteri_name olarak tanımlayalım.
Oncelikle neden public olarak tanımladığımızı belirtelim. Public tipi değişken sayesinde bu değişkenimize istediğim scoplar arasından ulaşmamıza imkan tanır. (Scop: Süslü parantezler yani {...} arasında kalan alanın genel adı. )
Public tamam; peki static ne oluyor diyecek olursanızs onu da şöyle izah etmeye çalışayım. Public bir değiken sadece aynı sayfa içerisinde istediğimiz bir scop arasında erişime izin verir. Yani default olarak private tir. Yani sadece bu sayfa içinde kullanılabilir. static ise bu bilginin adresinin doğrudan ram'e yazıldığı anlamına gelir. Yani program kapatılana kadar bu bilgi sürekli ram'deki ilgili adreste tutulur. public ve static kavramlarını tek tek açıkladıktan sonra bunları nasıl çağıracağımıza bakalım isterseniz.
Çağırma işlemini sözel anlatarak canınızı sıkmak istemiyorum. O yüzen kod üzerinde anlatacağım.
Kod:
--------
İlk sayfadaki(Musteri.aspx.cs) kod:
----------------------------------------
namespace ConFactor
{
public partial class Musteri : System.Web.UI.Page
{
public static string Musteri_name; //yukarıdaki ifadeleri uygun olarak değişkeni tanımladık.
}
}
protected void Page_Load(object sender, EventArgs e) //sayfamızın load kısmına değişkenimizin nereden set edileceğini yazdık. Bu setleme olayı bir buton altında da olabilir. Tamamen istege bağlı
{
Musteri_name =lbl_musteri.text; //Musteri_name değişkenine lbl daki değeri set ettik.
}
Şimdi ikinci sayfamız olan Siparis.aspx e gecelim.
---------------------------------------------------
namespace ConFactor
{
public partial class Siparis: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lbl_musteri_name.Text = Musteri.Musteri_name.ToString(); //label in text'ine Musteri sayfamızın Musteri_name değişkenindeki değeri yazdırmış olduk. ve string tipinde yazmasını söyledik.
}
}
}
Evet arkadaşlar olay bu kadar. Biraz uzun olduğunu farkındayım. Fakat iyice anlaşılmasını sağlamak için böyle bir yöntem izledim. Umarım faydalı olmuştur. Kolay gelsin...
NOT: Web uygulamalarında bunun yerine Session da verilerin tutulması önerilir. Sebebini ve Session Konusunu ilerleyen yazılarımda anlatmaya çalışacağım :)
18 Mart 2009 Çarşamba
C# da Bir Sayfadaki Değişkeni Başka Bir Sayfada kullanma
Kaydol:
Kayıt Yorumları (Atom)
Bu static değişkenler server tarafında mı tutuluyor yoksa kullanıcı tarafında mı?
YanıtlaSilpage load eventini nasıl namespace içerisinde tanımlayıp, label nesnesini protected override olmadan gösterdiniz... hatanız var.
YanıtlaSil