file (C# Başvurusu)

C# 11 ile başlayarak, file bağlamsal anahtar sözcük bir tür değiştiricidir.

Değiştirici, file bir üst düzey türün kapsamını ve görünürlüğünü bildirildiği dosyayla kısıtlar. Değiştirici file genellikle bir kaynak oluşturucu tarafından yazılan türlere uygulanır. Dosya yerel türleri, kaynak oluşturuculara oluşturulan türler arasında ad çakışmalarını önlemek için kullanışlı bir yol sağlar. Değiştirici file , bu örnekte olduğu gibi bir dosya yerel türü bildirir:

file class HiddenWidget
{
    // implementation
}

Dosya yerel türü içinde iç içe yerleştirilmiş tüm türler de yalnızca bildirildiği dosya içinde görünür. Derlemedeki diğer türler, dosya yerel türüyle aynı adı kullanabilir. Dosya yerel türü yalnızca bildirildiği dosyada görünür olduğundan, bu türler adlandırma çakışması oluşturmaz.

Dosya yerel türü, kapsamdan daha görünür file olan herhangi bir üyenin dönüş türü veya parametre türü olamaz. Dosya yerel türü, kapsamdan daha fazla görünürlüğe file sahip bir türün alan üyesi olamaz. Ancak, daha görünür bir tür örtük olarak bir dosya yerel arabirim türü uygulayabilir. Türü açıkça bir dosya yerel arabirimi de uygulayabilir , ancak açık uygulamalar yalnızca kapsam içinde file kullanılabilir.

Örnek

Aşağıdaki örnekte, çalışan yöntemi sağlamak için dosya yerel türünü kullanan genel bir tür gösterilmektedir. Buna ek olarak, ortak tür örtük olarak bir dosya yerel arabirimi uygular:

// In File1.cs:
file interface IWidget
{
    int ProvideAnswer();
}

file class HiddenWidget
{
    public int Work() => 42;
}

public class Widget : IWidget
{
    public int ProvideAnswer()
    {
        var worker = new HiddenWidget();
        return worker.Work();
    }
}

Başka bir kaynak dosyada, dosya yerel türleriyle aynı adlara sahip türleri bildirebilirsiniz. Yerel dosya türleri görünmez:

// In File2.cs:
// Doesn't conflict with HiddenWidget
// declared in File1.cs
public class HiddenWidget
{
    public void RunTask()
    {
        // omitted
    }
}

C# dili belirtimi

Daha fazla bilgi için bkz. C# Dil Belirtiminde bildirilen erişilebilirlik ve C# 11 - Dosya yerel türleri özellik belirtimi.

Ayrıca bkz.