Common Type System
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.
Veri tipleri
[değiştir | kaynağı değiştir]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