• Sonuç bulunamadı

Görsel Programlama 1 Dersi 2. Hafta

N/A
N/A
Protected

Academic year: 2022

Share "Görsel Programlama 1 Dersi 2. Hafta"

Copied!
58
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Görsel Programlama 1 Dersi

2. Hafta

(2)

C# Dilinin Yapısı

C# programlama dili Microsoft firması tarafından geliştirilmiş %100 nesne yönelimlidir. Programlamanın gerçek yaşama uyarlanması olarak düşünülebilir. Yaşamdaki nesnelerden esinlenerek ortaya çıkarılan bu yapıda nesnelere ait özellikler ve davranışlar programlama mantığında da kullanılmıştır.

(3)

C# Dilinin Yapısı

C# programlama dilinde kod yapısı aşağıdaki gibidir.

using System;

namespace ornekProgram {

class Program {

static void Main(string[] args) {

} } }

(4)

C# Dilinin Yapısı

C# dilinde kodlar bloklar halinde yazılır. Bloklar { } parantezleri arasında kalan kısımdır.

Kod yapısında yer alan ifadeleri inceleyelim.

Programlarımızda .Net Framework içerisinde tanımlı sınıf kütüphaneleri yada daha önce başka bir proje için geliştirdiğimiz kütüphaneleri kullanmak istediğimizde bunları projeye eklemek gerekir. Bu işlem "using" anahtar sözcüğüyle olur.

Using System;

Sınıf Kütüphanesinin Adı

(5)

C# Dilinin Yapısı

namespace isim alanı ya da isim uzayı olarak adlandırılabilir. Visual Studio ile proje oluşturulduğunda proje ismiyle varsayılan olarak eklenir.

Yazılan bir program çalıştırıldığında ilk çalıştırılan metot Main() metodudur.

static void Main(string[] args) {

Kod

Bokları }

(6)

C# Dilinin Yapısı

Ana metot dışında metot tanımlamaları yapılabilir. Bu metotlar class’ları meydana getirir. Class’lar ise namespace’leri oluşturur.

C# programlama dilinde büyük harf küçük harf duyarlılığı vardır. Ayrıca satır sonları noktalı virgül ile belirtilir.

(7)

Değişkenler

Program yazarken klavyeden, dosyadan, ağ ortamından veri girişi yapılabilir ya da bir hesaplama sonucunun program içerisinde kullanılması gerekebilir.

Bu durumlar ile çok sık karşılaşılır.

Örneğin iki sayının toplanması işleminde klavyeden girilecek sayıların tutulacağı nesnelere ihtiyaç duyulur. Hatta toplama işleminin sonucunun tutulacağı nesne de gerekebilir. Program içerisinde kullanılan verilerin bir yerlerde saklanması gerekir. Verilerin saklanacağı yer bilgisayardaki bellek bölgeleridir. Veri türüne göre farklı boyutlarda bellekte yer açılarak veri saklanması için yer ayrılır. Bu bellek bölgelerinin program içerisinde kullanılması ise değişken ile olur.

Bellek bölgesinde saklanacak veri sayı (tamsayı, ondalıklı vb.), metin gibi farklı türlerde olabilir. Bu farklılıktan dolayı C# da farklı veri türleri vardır.

(8)

Değişkenleri İsimlendirme

C# programlama dilinde değişkenlere isim verilirken uyulması gereken kurallar vardır.

Türkçe karakterler kullanılabilir.

Değişkenler rakam ile başlamaz. Fakat değişken isimleri içerisinde rakam kullanılabilir.

"_" karakteri dışında hiçbir özel karakter ya da sembol kullanılamaz.

Boşluk karakteri kullanılamaz.

Programlama diline ait komutlar, ifadeler değişken ismi olarak verilemez.

Büyük-Küçük harf duyarlılığı vardır.

Aynı isimli değişkenler aynı blok içerisinde kullanılamaz.

(9)

Değişkenleri İsimlendirme

Değişken İsmi

Durum Açıklama

A Doğru Büyük harf kullanılabilir.

5B Yanlış Rakamla başladığı için kullanılamaz.

Ad Doğru Büyük ve küçük harfler kullanılabilir.

TC Kimlik Yanlış Boşluk karakteri kullanılamaz.

ad&soyad Yanlış "_" dışında özel karakterler kullanılamaz.

Tel65 Doğru Rakamlar sadece değişkenin ilk karakteri olamaz. Bu durum dışında rakamlar kullanılabilir.

CepTel Doğru Büyük ve küçük harfler bir arada değişken ismi olarak kullanılabilir.

sayı Doğru Türkçe karakterler kullanılabilir.

_numara Doğru "_" karakteri ile başlayabilirler.

(10)

Veri Türleri

Tablo 1. Sayısal Veri Tipleri

Değişken Tipi

Bellekte Kapladığı Alan

Alabileceği Değer Aralığı

byte 1 Byte 0 ile 255 arasındaki tam sayı değerleri sbyte 1 Byte -128 ile 127 arasındaki tam sayı değerleri

short 2 Byte -32.768 ile 32.767 aralığındaki tamsayı değerleri ushort 2 Byte 0 ile 65.535 aralığındaki tamsayı değerleri

int 4 Byte -2.147.483.648 ile 2.147.483.647 aralığındaki tamsayı değerleri uint 4 Byte 0 ile 4.294.967.295 aralığındaki tamsayı değerleri

long 8 Byte -9.223.372.036.854.775.808 ile - 9.223.372.036.854.775.807 aralığındaki tamsayı değerleri

ulong 8 Byte 0 ile 18.446.744.073.709.551.615 aralığındaki tamsayı değerleri float 4 Byte + ya da - 1,5*10-45 ile + ya da - 3,4*1038 aralığındaki reel sayılar double 8 Byte + ya da - 5*10-324 ile + ya da - 1,7*10308 aralığındaki reel sayılar decimal 16 Byte + ya da - 1,5*10-28 ile + ya da - 7,9*1028 aralığındaki reel sayılar

(11)

Veri Türleri

Değişken Tipi Bellekte Kapladığı Alan

Alabileceği Değer Aralığı

Char 2 Byte Tek karakterli bir ifade tutar.

String Sınırsız Metinsel bir ifade tutar. Unicode

karakterlerden oluşur.

Tablo 2. Alfa sayısal (Metinsel) Veri Tipleri

Sayısal ve alfa sayısal veri tipleri dışında mantıksal, tarih ve object veri tipleri de vardır.

Tablo 3. Diğer Veri Tipleri

Değişken Tipi Bellekte Kapladığı Alan

Alabileceği Değer Aralığı

Bool 2 Byte Mantıksal veri tipi olup, True ya da

False değerlerini alabilir.

Object Sınırsız Tüm verileri kapsar. Zaten tüm veri

tipleri bu nesneden türemiştir.

DateTime 8 Byte Tarih ve zaman bilgisini tutar.

(12)

Veri Türleri

Değişkenler bellek bölgelerinin program içerisinde temsil edilmesini sağlayan nesnelerdir. Bu nesneler hangi türde veri saklanacaksa o veri tipiyle derleyiciye bildirimlerinin yapılması gerekir. Böylece veri tipine uygun olarak bellek bölgesinde yer ayrılır.

(13)

Veri Türleri

(14)

Veri Tipleri

(15)

Değişkenleri Tanımlama

Değişkenler kullanılmadan önce tanımlanmalıdır.

Tanımlanmadan kasıt değişken türüne göre bellek bölgesinde yer ayrılmasıdır. Değer ataması yapıldığında da bellek bölgesindeki ilgili alana değer yazılmış olur. C#

programlama dilinde değişken tanımlama aşağıdaki gibi yapılır.

{Değişken Tipi} {Değişken Adı} = {Değişkenin Değeri}

Üstte gösterilen kullanım şekli dışında değişkenler değerleri olmadan da tanımlanabilirler.

{Değişken Tipi} {Değişken Adı}

(16)

Değişkenleri Tanımlama

Örnek Açıklama

byte a=5; A değişkenine başlangıç değeri olarak 5 atanmıştır. Değişken "byte"

veri tipindedir.

byte a; byte tipinde a isimli bir değişken tanımlanmıştır. Başlangıç değeri verilmemiştir. Varsayılan değer "0" dır.

Tablo 4. Tamsayı Değişkenlerini Tanımlama

byte, sbyte, short, ushort, int, uint, long, ulong veri tipleri tamsayı değerlerini tutar ve tanımlanmaları Tablo 4’deki gibidir.

(17)

Değişkenleri Tanımlama

Örnek Açıklama

float a=5.3f; a değişkenine başlangıç değeri olarak 5,3 atanmıştır. Değişken

"float" veri tipindedir. Atanan değerin sağ tarafına "f" ya da "F"

harfinin yazılması gereklidir.

float a; float tipinde a isimli bir değişken tanımlanmıştır. Başlangıç değeri verilmemiştir. Varsayılan değer "0.0f" dır.

double a=5.3d; a değişkenine başlangıç değeri olarak 5,3 atanmıştır. Değişken

"double" veri tipindedir. Atanan değerin sağ tarafına "d" ya da "D"

harfinin yazılması gereklidir.

double a; double tipinde a isimli bir değişken tanımlanmıştır. Başlangıç değeri verilmemiştir. Varsayılan değer "0.0d" dır.

decimal a=5.3m; a değişkenine başlangıç değeri olarak 5,3 atanmıştır. Değişken

"decimal" veri tipindedir. Atanan değerin sağ tarafına "m" ya da "M"

harfinin yazılması gereklidir.

decimal a; decimal tipinde a isimli bir değişken tanımlanmıştır. Başlangıç değeri verilmemiştir. Varsayılan değer "0.0m" dır.

Tablo 5. Ondalıklı Sayı Değişkenlerini Tanımlama

(18)

Değişkenleri Tanımlama

Ondalıklı sayı değişkenlerine değer ataması yapılırken değerin sağ tarafına float veri tipi için "f" ya da "F", double veri tipi için "d" ya da "D" ve decimal veri tipi için de "m"

ya da "M" harfleri yazılmalıdır. Ondalıklı sayılarda eğer değerin yanında herhangi bir harf belirtilmemişse varsayılan olarak double kabul edilir.

(19)

Char Veri Türü

Char veri tipi ile tanımlanmış bir değişken tüm Unicode karakterleri tutabilir. Bellek bölgesinde 2 byte (6 bitlik) bir alan kaplar. Unicode sistemi İngiliz alfabesi dışında Türkçe, Japonca, Çince gibi tüm dillerin karakterlerini kapsar. Char isim olarak "Character" kelimesinin kısaltılmışıdır ve Unicode sistemindeki karakterlerden birini tutabilir. Bu karakterler sadece harf değildir, semboller ve rakamlar da birer karakterdir.

Char tipindeki bir değişkene değer ataması yapabilmek için tek tırnakların (‘ ’) kullanılması gereklidir.

(20)

Char Veri Türü

Örnek kullanım;

Değişkenler ilk değer atamalı ya da ilk değer atamasız tanımlanabilirler. İlk değer atamasız tanımlama aşağıdaki gibidir.

char karakter;

İlk değer atamalı tanımlama ise aşağıdaki gibidir.

char karakter=‘A’;

(21)

Char Veri Türü

C# dilinde bazı karakterlerin ekrana basılabilmesi için "\"

kullanılmalıdır. Bu karakterler Tablo 6’da gösterilmiştir.

Tablo 6. Kaçış (Escape) Karakterleri

Karakter Açıklama

\n Yeni satıra geçmek için kullanılır.

\t Tab tuşu işlevini gerçekleştirir.

\0 Null

\’’ Çift tırnak (") karakterinin ekrana basılması

\r Satır başına geçmek için kullanılır.

\b Geri al

\\ ‘\’ karakterini ekrana basabilmek için kullanılır.

\a Uyarı (bip) sesi

(22)

String Veri Türü

"string" veri türüne sahip bir değişkene metinsel bir ifade değer olarak verilebilir. Bir paragraf ya da cümle yazmak istediğimizde kullanılabilecek bir değişken türüdür.

"string" değişkenlere değer ataması çift tırnak (" ") kullanılarak yapılır.

Örnek kullanım;

string metin;

Ya da ilk değer atamalı olarak tanımlanmak istenirse;

string metin="BURSA";

(23)

Bool Veri Türü

Bool mantıksal veri tipidir. Alabileceği değerler True (doğru) ya da False (yanlış) dur. Karar yapılarında ve döngü sistemlerinde oldukça kullanışlıdır.

Örnek kullanım; diğer değişken türleri gibi ilk atamalı ya da ilk atamasız kullanılabilir.

bool a=True;

Bool a=(20<30);

Sonuç 20 sayısı 30’dan küçük olduğu için sonuç doğrudur. a değişkeninin değeri "True" olur.

(24)

Object Veri Türü

C# programlama dilinin nesne yönelimli bir dil olduğundan bahsedilmiştir. C# dilindeki tüm veri tipleri ‘’Object’’

sınıfından türetilmiştir. Dolayısıyla tüm veri tiplerine ait veriler Object türünden bir değişkene atanabilir.

(25)

DateTime Veri Türü

Tarih ve zaman bilgisi DateTime veri tipindeki değişkenlerde kullanılabilir. Örnek kullanımda gösterilen ifade de derlenme anındaki tarih ve saat bilgisi değişkene aktarılmaktadır.

Örnek kullanım;

DateTime tarihsaat=DateTime.Now();

Önemli!

Aynı veri tipinde birden fazla değişken tanımlanması

gerektiğinde değişken isimleri arasında virgül kullanılarak tanımlama yapılabilir.

Örnek; int a,b;

(26)

MaxValue

İlgili veri tipinin en fazla hangi sayısal değeri alabileceğini veren sabittir.

(27)

MaxValue

(28)

MinValue

Sayısal bir değişkenin içerisinde saklayabileceği en küçük sayıyı ilgili sayısal değişkenin türüne göre döndüren sabittir.

(29)

MinValue

(30)

Değişkenlerin Yaşam Alanı

Bir programda birçok değişken kullanılabilir. Bu

değişkenlerin geçerlilik alanları kullanıldıkları blok ile

sınırlıdır. C# dilinde bloklar { } parantezleri ile belirlenirler.

class Bloklar {

static void Main(string[] args) {

} }

(31)

Değişkenlerin Yaşam Alanı

Tabloda da görüleceği gibi "Bloklar" adında "class" bloğu { } aralığıdır ve "Main" bloğunu kapsar. Bu neden önemlidir.

Değişkenler tanımlandıkları bloklarda geçerlidir. Eğer bir bloğun kapsadığı alt bloklar var ise değişken o blokta da geçerliliğini devam ettirir.

(32)

Sabitler

Program yazarken bazı durumlarda sabit ifadeler kullanılır.

Program boyunca değerleri sabit olan değişmeyen anlamındadır.

Değişkenlere isim verirken uyulan tüm kurallara "sabit"

tanımlamaları içinde uyulur. "Sabit" ifadelerin "Değişken"

ifadelerden farkı program boyunca değiştirilemeyecek olmasıdır.

Ayrıca sabit ifadeler tanımlandıkları anda ilk değerlerini almak zorundadırlar. Sabit tanımlamaları const anahtar sözcüğü ile yapılır.

(33)

Sabit Tanımlamaları

const int x = 0;

public const double gConstant = 6.673e-11;

private const string language = "Visual C#";

public const double x = 1.0, y = 2.0, z = 3.0;

static kelimesi kullanılmaz

Tanımlandığında değer atanmalı

readonly: atama constructor ‘da veya const gibi

(34)

Bellek Bölgeleri

Bilgisayardaki bellek bölgelerini bilmek geliştirici açısından önemlidir. Değişkenlere atanan değerler bellek bölgelerinde saklanırlar. Bellek bölgeleri bilinirse geliştirilen uygulamalarda sistem kaynakları daha tasarruflu kullanılarak performans kayıpları azaltılabilir.

Stack Bölgesi; RAM bellek üzerinde değer tipli değişkenlerin değerlerinin tutulduğu bölgelerdir. Derleyici tarafından bu bölgede tutulacak değişkenlerin veri türlerinin bilinmesi gerekir.

Tanımlama işleminden sonra veri türüne göre bellekte yer ayrılır.

Heap Bölgesi; Bu bölgede RAM bellek üzerindedir. "Heap" te tutulacak nesnelerin derleyici tarafından önceden bilinmesi gerekli değildir. Referans tipli değişkenlerin tutulduğu bellek bölgesidir.

(35)

Sabit Bölge; Programda oluşturulan sabit ifadeler bu bölgede tutulurlar.

Static Bölge; Bu bölgede tutulan değişkenlerin ömürleri programın çalışma süresincedir. C# da static anhtar sözcüğü ile değişkenler bu bölgede saklanabilirler.

Register Bölgesi; Mikroişlemci içerisinde bulunur. Bu bölgeye erişim derleyiciler ile olur. Derleyici sık kullandığı verileri bu bölgede tutar.

Verilerin Kalıcı Saklanması; Ram de tutulan veriler geçicidir. Program sonlandırıldığında ya da çalışma esnasında kalıcı olarak saklanması istenen veriler CD, DVD, Blu Ray, harddisk, flash bellek gibi kayıt ortamlarına kaydedilebilirler.

(36)

Değer Tipli ve Referans Tipli Veri Türleri

Veri türleri bellek bölgelerinde saklanma durumlarına göre 2’ye ayrılır.

Değer tipli

Referans tipli

(37)

Değer tipli veri türleri belleğin "stack" denilen bölgesinde tutulur. Saklanması istenen değer doğrudan belleğe yazılır gerektiğinde çağrılır ve kullanılır. Şekil 4.2. de değer tipli bir değişkenin stack bölgesinde nasıl tutulduğu gösterilmiştir.

int a=10;

int b=5;

(38)

Stack Bölgesi 10

5 . . . a

b

Şekil 1. Stack bölgesinde değerin saklanması

a ve b adında tam sayı tipinde 2 değişken tanımlandığında bellek bölgesinde 4 byte lık yer ayrılır ve bu bölgeye değişkenin değeri direk olarak yazılır. Program içerisinde

değişkenler üzerinde işlem yapıldığında stack bölgesinden değişkenin değerine doğrudan erişilebilir.

(39)

Eğer kodlamada değer tipli değişkenleri bir birine eşitlersek durum Şekil 2’deki gibi olur. Stack bölgesinde fiziksel olarak ayrı ayrı saklandıklarından değişkenler birbirlerinden etkilenmezler.

int a=10;

int b=5;

a=b;

b=7;

Stack Bölgesi 5

7 . . . a

b

Şekil 2. Stack bölgesinde ki değişim

(40)

Referans tipli; Veriler "Heap" bölgesinde tutulur. Verinin tutulduğu "Heap" bölgesinin adresi ise "stack" tadır. Stack taki adres referans olarak kullanılarak Heap teki veriye erişilir.

C# dilinde tanımlı olarak gelen veri türleri içerisinde "string" ve

"object" veri türleri referans tipli, bunların dışında kalan veri türleri ise değer tiplidir.

(41)

Tür Dönüşümleri

Veri türleri arasında dönüşüm yapmak mümkündür. Örneğin bazen byte tipindeki bir değişken int tipine dönüştürülmek istenebilir. Aynı şekilde string tipinde bir değişkenin sayısal bir değişken tipine dönüştürülerek matematiksel işlem yapılması istenebilir.

Tür dönüşümün de dönüşüm yapılacak veri türlerinin kapasiteleri önemlidir. Küçük kapasiteli bir veri türü sorunsuzca büyük kapasiteli bir veri türüne dönüştürülebilirken, bunun tersi bir durumda veri kaybı söz konusu olabilir.

(42)

Tür dönüşümleri iki şekilde gerçekleştirilebilir.

Bilinçsiz Tür Dönüşümü (implicit); Küçük kapasiteli bir değişken tipinin yüksek kapasiteli bir değişken tipine dönüştürülmesi bilinçsiz tür dönüşümüdür. Çünkü herhangi bir veri kaybı söz konusu değildir. Örneğin 8 bit lik bir byte türünde ki bir değişken 32 bitlik int tipindeki bir değişkene dönüştürülebilir.

Örnek kullanım;

byte a;

int b;

a=10;

b=a;

(43)

Bilinçli Tür Dönüşümü (Explicit); Büyük kapasiteli bir değişken tipinden küçük kapasiteli değişken tipine dönüşüm yapıldığında veri kaybı yaşanabileceği için bu işlem engellenmiştir. Fakat oluşabilecek veri kaybının farkında olarak dönüşüm gerçekleştirilebilir.

(44)

Örnek kullanım; Aşağıdaki kod derlendiğinde hata ile karşılaşılır. Hata olarak int tipindeki bir değişkenin byte tipindeki bir değişkene bilinçsiz tür dönüşümü yapılamayacağına yöneliktir. Çünkü int veri tipi 32 bitliktir.

Dolayısıyla 8 bitlik bir byte değişkenine sığdırılamaz. Veri kaybı yaşanması muhtemeldir.

int a;

byte b;

a=10;

b=a;

(45)

Fakat bilinçli tür dönüşümü ile veri kaybı dikkate alınarak aşağıdaki kod bloğu ile dönüşüm gerçekleştirilebilir. Böyle bir ifadeyle derleyiciye veri kaybı olabileceğinin farkında olduğumuzu belirtmiş oluruz.

int a;

byte b;

a=10;

b=(byte) a;

Eğer a değişkeninin değeri 255in üzerinde olursa veri kaybı gerçekleşir.

int a;

byte b;

a=350;

b=(byte) a;

(46)

Tür dönüşümü için Convert sınıfı kullanılabilir. Bu sınıfa ait birçok tür dönüşüm metodu vardır. Fakat değişkenlerin CTS karşılıklarını bilmek gerekir.

Tablo 7. Değişken tipleri CTS karşılıkları ve Tür Dönüşümü

Tür CTS karşılığı Tür Dönüşüm

Metodunun Kullanımı

Bool Boolean Convert.ToBoolean(a)

Byte Byte Convert.ToByte(a)

Sbyte Sbyte Convert.ToSbyte(a)

Short Int16 Convert.ToInt16(a)

ushort UInt16 Convert.ToUInt16(a)

İnt Int32 Convert.ToInt32(a)

Uint UInt32 Convert.ToUInt32(a)

(47)

Tür CTS karşılığı Tür Dönüşüm

Metodunun Kullanımı

Long Int64 Convert.ToInt64(a)

Ulong UInt64 Convert.ToUInt64(a)

Float Single Convert.ToSingle(a)

double Double Convert.ToDouble(a)

decimal Decimal Convert.ToDecimal(a)

Char Char Convert.ToChar(a)

string String Convert.ToString(a)

(48)

Örnek kullanım;

int a;

string b;

b="5";

a=Convert.ToInt32(b);

Örnekte string türünden bir değişken tamsayı türüne dönüştürülmüştür. String değişkeni olan "b" de "5" değeri olduğu görülüyor. Bu değerin tamsayıya dönüştürülmesinde sıkıntı yoktur.

Fakat herhangi bir metinsel ifadenin sayısal bir ifadeye dönüştürülmesi söz konusu değildir. Hata ile karşılaşılır.

Dikkat edilecek dönüşümlerden bir tanesi de "char" tipinde bir değişkenin tamsayı tiplerinden birine dönüştürülmesidir. Böyle bir dönüşümde karakterin ascii kod karşılığı değer olarak döndürülür.

(49)

ASCII kod; Klavyeden girilen herhangi bir karakter, sayı ya da simgenin bilgisayar belleğinde saklanma biçimidir.

Örneğin 'A' karakterinin ASCII kod karşılığı 65'dir.

Örnek kullanım;

char x;

int a;

x='A';

a=Convert.ToInt32(x);

Kod bloğu derlendiğinde a değişkeninde 65 değeri olur.

(50)

String türüne dönüşüm aşağıdaki şekillerde yapılabilir.

Örnek kullanım;

int a;

string b;

a=10;

b=Convert.ToString(a); //b=a.ToString();

Değişkenlerin veri tipleri GetType() metoduyla öğrenilebilir. Dönen sonuç CTS karşılığıdır.

İnt a;

a=10;

Console.WriteLine(a.GetType());

Console.ReadKey();

Ekran Çıktısı:

System.Int32

(51)

Boxing ve Unboxing Kavramları

Değer tipinin referans tipine dönüştürülmesi boxing işlemidir. Bu işlemin tersi ise unboxing olarak adlandırılır.

static void Main(string[] args) {

int a=10;

object b=a; //boxing

int c = (int) b; //unboxing }

(52)

Bilindiği gibi değer tipler stack ta tutulurken, referans tipler heap te saklanır. Değer tipleri ile referans tipler arasında dönüştürme işlemi yapıldığında stack ta tutulan veri heap'e(boxing), heap'te tutulan veri stack'a(unboxing) kopyalanır.

Boxing ve unboxing işlemlerinden sonraki bellek bölgelerinin sembolik gösterimleri aşağıdadır. Kesik çizgili ok ile kopyalama yönü gösterilmiştir.

(53)

Boxing işleminden sonra;

Stack Heap

5

Adres a

b

5

(54)

Unboxing işleminden sonra;

Stack Heap

a 5

Adres 5

b c

5

(55)

Tip Dönüştürme:Parse

Parse : string->sayı

string sayı1=“1234”;

int x=Int32.Parse(sayı1);

string sayı2=“12.345”;

int y=Int32.Parse(sayı2); //derleme hatası

long s;

s=long.Parse(textbox1.Text);

(56)

Tip Dönüştürme:Convert

Convert: string->sayı VE sayı->string

string sayı1=“1234”;

int x=Convert.ToInt32(sayı1);

string sayı2=“12.345”;

int y=Convert.ToInt32(sayı2); //derleme hatası long s;

S=Convert.Tolong(textbox1.Text);

(57)

Boxing-Unboxing

Boxing: Stack alanından Heap alanına taşıma object x;

int i=10;

x=i;

Unboxing: Heap alanından Stack alanına taşıma object x;

int i=10, j=20;

x=j;

i=(int)x;

(58)

Değişken Kapsama Alanları

Global değişkenler metotların dışında tanımlanır, değer ataması hemen yapılmalıdır ve sınıf içindeki tüm

metotlardan erişilir

Yerel değişkenler metotların içinde tanımlanır, sadece metot içerisinden erişilir

public static: Diğer sınıflardan da erişilir, tüm kopyalarda ortak kullanılır

private: Sadece tanımlandığı sınıftan erişilir

protected: Sadece ilgili sınıftan ya da o sınıftan türetilen sınıflardan erişilir

internal: Sadece aynı isim uzayından

Referanslar

Benzer Belgeler

5393 Sayılı Belediyeler Kanunu’ndaki düzenlemelerde açıkça belirlenmiştir ki; &#34; toplumun genel sa ğlığın korunması amacıyla, kentte üretilen çöp ve

Rasgele Değişken: Bir örnek uzaydaki her rasgele olaya sayısal bir değer atayan bir fonksiyondur. Başka bir ifadeyle rastgele değişken fonksiyonu, örnek uzayı

Tavuk, Kaz, Ördek, Hindi, Bıldırcın, Sülün, Keklik yumurtası/eti üretiminin hayvansal üretim açısından önemi vurgulanır,.. Ülkesel Tavuk, Kaz, Ördek, Hindi,

Gideri Personel Gideri Aşı İlaç Gideri Elektrik Yakıt ve Su Amortisman Gideri Bakım Onarım Gideri Sigorta Gideri Genel Gider Finansman Gideri.. FON AKIŞ TABLOSU

İlkine doğum yapacak genç ve daha önceden doğum yapmış dişi gebe domuzların canlı ağırlık, canlı ağırlık artışı ve üremeye ait (fetüs) ağırlık artışı

Çizelgeleme literatürü; parametrelerin belirgin (deterministik) olduğu durumdan belirsiz (stokastik) olduğu duruma, tek makinalıdan çok makineyi geliş sürecinin

Doğal Gaz Semineri Sıvı yakıt yakan brülörlerde (Şekil 5b) brülör gövdesi, kovan mili ile birlikte menteşeli brülör grubu, yakıt borusu, pulverize çanağı, primer hava

Metanol-katalizör karıĢımının reaktördeki atık yağa eklenmesi Transesterifikasyon iĢlemi bittikten sonra oluĢan biyodizel ve gliserin karıĢımının ayrıĢma iĢlemi