Common Type System

Vikipedi, özgür ansiklopedi

Common Type System (CTS), Microsoft'un .NET Framework'te veri tipi tanımlarının ve bunların belirli değerlerinin bilgisayar belleğinde nasıl temsil edildiğini belirten bir standarttır. Farklı programlama dillerinde yazılan programların kolayca bilgi paylaşmasına olanak sağlamak amaçlanır. Programlama dillerinde kullanıldığı şekliyle bir veri tipi, bir değer kümesinin tanımı (örneğin, "0 ile 10 arasındaki tüm tam sayılar") ve bu değerler üzerinde izin verilen işlemler (örneğin, toplama ve çıkarma) olarak tanımlanabilir.

CTS, Ecma 335, "Common Language Infrastructure (CLI) I. Bölüm - VI"da yer almaktadır. CLI ve CTS, Microsoft ve .NET Framework standartlarını uygular.

Common Type System işlevleri

[değiştir | kaynağı değiştir]
  • Diller arası entegrasyonun, veri tiplerinin güvenliğinin ve yüksek performanslı kod yürütmenin sağlanmasına yardımcı olan bir framework oluşturmak.
  • Birçok programlama dilini destekleyen ve CLI standartlarına uygun, nesne yönelimli bir model sağlamak.
  • Farklı programlama dillerinde yazılan nesnelerin birbirleriyle etkileşime girebilmesini sağlamaya yardımcı olmak ve dillerin uyması gereken kuralları tanımlamak.
  • CTS ayrıca çeşitli dillerde yazılan nesnelerin veri tiplerinin de birbirleriyle etkileşime girebilmesini sağlayan kuralları da tanımlar.
  • CTS aynı zamanda veri tipi görünürlüğüne ve bir veri tipinin değişkenlerine erişime ilişkin kuralları da belirler; yani CTS, derlemelerin bir veri tipi için oluşturduğu kuralları belirler ve bunun için Common Language Runtime görünürlük kurallarını uygular.
  • CTS, veri tipi kalıtımını, sanal metodları ve nesne ömrünü yöneten kuralları tanımlar.

Common Type System iki genel veri tipini destekler: Value Type ve Reference Type. Value type'larda bellekten veriye doğrudan yolla ulaşılırken, reference type'larda bellekteki başka bir nesne yoluyla değere ulaşılır. Yani reference type'larda belleğin tutulduğu adresler önem kazanır.

Aşağıdaki örnek, value type ile referance type arasındaki farkı göstermek için Visual Basic'te yazılmıştır.

Imports System  Class Class1     Public Value As Integer = 0 End Class 'Class1   Class Test     Shared Sub Main()         Dim val1 As Integer = 0         Dim val2 As Integer = val1         val2 = 123         Dim ref1 As New Class1()         Dim ref2 As Class1 = ref1         ref2.Value = 123         Console.WriteLine("Values: {0}, {1}", val1, val2)         Console.WriteLine("Refs: {0}, {1}", ref1.Value, ref2.Value)     End Sub 'Main End Class 'Test 

Yukarıdaki örneğin çıktısı

Values: 0, 123 Refs: 123, 123 

Ayrıca bakınız

[değiştir | kaynağı değiştir]

Dış bağlantılar

[değiştir | kaynağı değiştir]