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 

 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 
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 'TestYukarıdaki örneğin çıktısı
 Values: 0, 123
 Refs: 123, 123

 Ayrıca bakınız 

 .NET Framework
 Common Language Infrastructure

 Dış bağlantılar 

 CTS'yi açıklayan Microsoft geliştirici kılavuzu
 . NET Çerçevesi

Kategori:.NET Framework
Kategori:Common Language Infrastructure