C# soyut sınıf (abstract class) kavramı

csharp
* Tanım olarak arabirimlere benzeyen soyut sınıf (abstract class) kavramı sınıfların örnek alacağı ana sınıf şablonunu temsil eder.
* Soyut sınıfta, sınıflarda olması gereken ögeler tanımlanır ve bundan türeyecek sınıflarda bu ögelerin kullanılmasına imkan verilir.
* Soyut sınıfta, öğelerin içerikleri de belirtilebilir.
* Soyut sınıflar abstract sözcüğüyle tanımlanırlar. (yani abstract da bir erişim belirleyicisidir)
* Doğrudan kullanılamazlar. Türetilmeyi beklerler.
* Bir sınıf birden fazla soyut sınıfı miras alamaz. Sadece bir sınıfı miras alabilir.
* Soyut sınıfa bir öğe eklendiğinde diğer kodlarda herhangi bir hata oluşmaz. Yeni eklenen kod istenildiği vakit kullanılabilir.
* Soyut sınıfın üyeleri tipik bir sınıfın tüm üyeleri olabilir.
using System;

class Program
{
    static void Main(string[] args)
    {
        Araba objAraba = new Araba();
        objAraba.plaka = "XM 856 DEI";
        Console.WriteLine(objAraba.plaka.ToString());
        Console.WriteLine(objAraba.Genislik.ToString());
        Console.ReadKey();
    } // Main
    public abstract class Arac
    {
        public string plaka;
        public void FreneBas()
        {
            Console.WriteLine("Arac durdu.");
        }
        public abstract Decimal Genislik
        {
            get;
        }
    } // Arac
    public class Araba : Arac
    {
        public override decimal Genislik
        {
            get 
            { 
                return 2.8M;
            }
        }
    } // Araba
}

asp.net viewstate yönetimi

asp.netASP.NET sayfalarında viewstate yönetilebilir bir özelliktir. Yani viewstate değerine sayfa ve kontrol verilerinin eklenip eklenmeyeceğine müdahale edebiliriz. Bu 3 şekilde yapılabilir.

Uygulama kapsamında: Bunun için web.config dosyasında

<pages EnableViewState="false".......>
şeklinde bir ifadeye yer vermeliyiz. Böylece web uygulamamızdaki bütün sayfalarda, ViewState'e durum bilgisi değerleri eklenmesi engellenir.

Sayfa kapsamında:
<%@ Page EnableViewState="False"......%>
ile sadece o sayfa ve bütün kontrolleri için durum bilgisi değerleri ViewState'e eklenmez.

Kontrol kapsamında: Eğer dilersek sadece kontrol ve kontrole ait değerin ViewState'e eklenmesi engellenebilir.
<asp:kontrol_ismi EnableViewState="false"...../>
şeklinde kullanılır. Böylece belirtilen kontrolün durum bilgisi ViewState değerine eklenmez.

ViewState'i neden kullanmak istemeyebiliriz?

-Sayfa kendisine geri dönüşüm yapmayacak olabilir. Bu durumda kontrol elemanlarında herhangi bir kıyaslama gereği de yoktur.

-Kontrol elemanında herhangi bir olay yakalama durumu söz konusu değilse.

-Kontrol elemanı dinamik veri girilebilir özellikte olmayabilir veya bir veri kaynağına bağlı olabilir. Örneğin bir gridview kontrolü normal koşullarda kullanıcıyla direk teması olmayan, verilerini bağlı olduğu kaynaktan alan sunucu kontrolüdür. Bu kontrolün durum bilgisinin tutulmasının anlamı yoktur.

Kaynak: C# ile Asp.net
Zafer Demirkol

c++ ornek dizi uzerinde ardisil arama

c programming languagec++ da integer olarak tanımlanmış dizi üzerinde, değer arama işlemini ardisil arama ile yapma.


#include<iostream>//////bulduğu gibi döngüden çıkar------
using namespace std;
int ardisilarama(int A[],int N,int aranan)
{
    for (int i=0;i<N;i++)
    {
        if (A[i]==aranan)
            return i;
    }
    return -1;
}
int main()
{
    int indis, aranan;
    int A[]={5,78,45,67,88,99,22,5,34,5,455,22,123,543};
    for (int i=0;i<sizeof(A)/sizeof(int);i++)
        cout<<A[i]<<" ";
    cout<<endl<<"aranan sayi: ";
    cin>>aranan;
    indis=ardisilarama(A,sizeof(A)/sizeof(int),aranan);
    if (indis!=-1)
        cout<<"indis: "<<indis;
    else
        cout<<"aranan deger dizide yok.";
    return 0;
}