Öğretici: Visual Studio Code kullanarak .NET sınıf kitaplığı oluşturma

Bu öğreticide, tek bir dize işleme yöntemi içeren basit bir yardımcı program kitaplığı oluşturacaksınız.

Bir sınıf kitaplığı , bir uygulama tarafından çağrılan türleri ve yöntemleri tanımlar. kitaplık .NET Standard 2,0 hedefliyorsa, .NET Standard 2,0 ' yi destekleyen herhangi bir .net uygulamasıyla (.NET Framework dahil) çağrılabilir. Kitaplık .NET 6 ' yı hedefliyorsa, .NET 6 ' yı hedefleyen herhangi bir uygulama tarafından çağrılabilir. Bu öğreticide, .NET 6 ' nın nasıl hedeflenecek gösterilmektedir.

Bir sınıf kitaplığı oluşturduğunuzda, bir üçüncü taraf bileşen olarak veya bir veya daha fazla uygulamayla paketlenmiş bileşen olarak dağıtabilirsiniz.

Önkoşullar

Çözüm oluşturma

' De Sınıf Kitaplığı projesini yerleştirmek için boş bir çözüm oluşturarak başlayın. Bir çözüm, bir veya daha fazla proje için kapsayıcı görevi görür. Aynı çözüme ek ve ilgili projeler ekleyeceksiniz.

  1. Visual Studio Code’u başlatın.

  2. Ana menüden Dosya > açma klasörünü (MacOS üzerinde Open... ) seçin

  3. Klasörü aç iletişim kutusunda bir classlibraryprojects klasörü oluşturun ve Klasör Seç ' e tıklayın (MacOS üzerinde açın ).

  4. ana menüden terminal görünümü ' nu seçerek Visual Studio Code açın > .

    Terminal , classlibraryprojects klasöründe komut istemiyle açılır.

  5. Terminalde aşağıdaki komutu girin:

    dotnet new sln
    

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    The template "Solution File" was created successfully.
    

Sınıf kitaplığı projesi oluşturma

Çözüme "StringLibrary" adlı yeni bir .NET sınıf kitaplığı projesi ekleyin.

  1. Terminalde, kitaplık projesini oluşturmak için aşağıdaki komutu çalıştırın:

    dotnet new classlib -o StringLibrary
    

    -oOr --output komutu oluşturulan çıkışın yerleştirileceği konumu belirtir.

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    The template "Class library" was created successfully.
    Processing post-creation actions...
    Running 'dotnet restore' on StringLibrary\StringLibrary.csproj...
      Determining projects to restore...
      Restored C:\Projects\ClassLibraryProjects\StringLibrary\StringLibrary.csproj (in 328 ms).
    Restore succeeded.
    
  2. Kitaplık projesini çözüme eklemek için aşağıdaki komutu çalıştırın:

    dotnet sln add StringLibrary/StringLibrary.csproj
    

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    Project `StringLibrary\StringLibrary.csproj` added to the solution.
    
  3. Kitaplığın .NET 6 ' yı hedeflediğinden emin olun. Gezgin'de StringLibrary/StringLibrary. csproj öğesini açın.

    TargetFrameworkÖğesi, projenin .net 6,0 ' i hedeflediğini gösterir.

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net6.0</TargetFramework>
      </PropertyGroup>
    
    </Project>
    
  4. Class1. cs ' i açın ve kodu aşağıdaki kodla değiştirin.

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            char ch = str[0];
            return char.IsUpper(ch);
        }
    }
    

    Sınıf kitaplığı, UtilityLibraries.StringLibrary adlı bir yöntemi içerir StartsWithUpper . Bu yöntem Boolean , geçerli dize örneğinin büyük harfli bir karakterle başlayıp başlamadığını belirten bir değer döndürür. Unicode standart, büyük harfli karakterleri küçük harfli karakterlerden ayırır. Char.IsUpper(Char) true Bir karakter büyük harfli ise, yöntemi döndürür.

    StartsWithUpper , sınıfının bir üyesi gibi çağırabilmeniz için bir genişletme yöntemi olarak uygulanır String .

  5. Dosyayı kaydedin.

  6. Çözümü derlemek ve projenin hatasız derlendiğinden emin olmak için aşağıdaki komutu çalıştırın.

    dotnet build
    

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    Microsoft (R) Build Engine version 16.7.0+b89cb5fde for .NET
    Copyright (C) Microsoft Corporation. All rights reserved.
      Determining projects to restore...
      All projects are up-to-date for restore.
      StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net6.0\StringLibrary.dll
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:02.78
    

Çözüme bir konsol uygulaması ekleme

Sınıf kitaplığını kullanan bir konsol uygulaması ekleyin. Uygulama kullanıcıdan bir dize girmesini ister ve dizenin büyük harfli bir karakterle başlayıp başlamamadığını rapor eder.

  1. Terminalde, konsol uygulama projesini oluşturmak için aşağıdaki komutu çalıştırın:

    dotnet new console -o ShowCase
    

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    The template "Console Application" was created successfully.
    Processing post-creation actions...
    Running 'dotnet restore' on ShowCase\ShowCase.csproj...  
      Determining projects to restore...
      Restored C:\Projects\ClassLibraryProjects\ShowCase\ShowCase.csproj (in 210 ms).
    Restore succeeded.
    
  2. Konsol uygulaması projesini çözüme eklemek için aşağıdaki komutu çalıştırın:

    dotnet sln add ShowCase/ShowCase.csproj
    

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    Project `ShowCase\ShowCase.csproj` added to the solution.
    
  3. Gösterimi/program. cs ' i açın ve kodun tümünü aşağıdaki kodla değiştirin.

    using UtilityLibraries;
    
    class Program
    {
        static void Main(string[] args)
        {
            int row = 0;
    
            do
            {
                if (row == 0 || row >= 25)
                    ResetConsole();
    
                string? input = Console.ReadLine();
                if (string.IsNullOrEmpty(input)) break;
                Console.WriteLine($"Input: {input}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } while (true);
            return;
    
            // Declare a ResetConsole local method
            void ResetConsole()
            {
                if (row > 0)
                {
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
                Console.Clear();
                Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}");
                row = 3;
            }
        }
    }
    

    Kod, row konsol penceresine yazılan veri satırlarının sayısını korumak için değişkenini kullanır. 25 ' e eşit veya daha büyük olduğunda, kod konsol penceresini temizler ve kullanıcıya bir ileti görüntüler.

    Program kullanıcıdan bir dize girmesini ister. Dizenin büyük harfle başlatılıp başlatılmayacağını gösterir. Kullanıcı bir dize girmeden ENTER tuşuna basarsa, uygulama sonlanır ve konsol penceresi kapanır.

  4. Yaptığınız değişiklikleri kaydedin.

Proje başvurusu Ekle

Başlangıçta, yeni konsol uygulaması projesi sınıf kitaplığına erişemez. Sınıf kitaplığındaki yöntemleri çağırmasına izin vermek için, sınıf kitaplığı projesine bir proje başvurusu oluşturun.

  1. Şu komutu çalıştırın:

    dotnet add ShowCase/ShowCase.csproj reference StringLibrary/StringLibrary.csproj
    

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    Reference `..\StringLibrary\StringLibrary.csproj` added to the project.
    

Uygulamayı çalıştırma

  1. Terminalde aşağıdaki komutu çalıştırın:

    dotnet run --project ShowCase/ShowCase.csproj
    
  2. Dizeleri girerek ve ENTER'a basarak programı deneyin ve çıkmak için ENTER tuşuna basın.

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
    
    A string that starts with an uppercase letter
    Input: A string that starts with an uppercase letter
    Begins with uppercase? : Yes
    
    a string that starts with a lowercase letter
    Input: a string that starts with a lowercase letter
    Begins with uppercase? : No
    

Ek kaynaklar

Sonraki adımlar

Bu öğreticide, bir çözüm oluşturdunuz, bir kitaplık projesi eklediniz ve kitaplığı kullanan bir konsol uygulaması projesi ekledik. Sonraki öğreticide, çözüme bir birim testi projesi eklersiniz.

Bu öğreticide, tek bir dize işleme yöntemi içeren basit bir yardımcı program kitaplığı oluşturacaksınız.

Bir sınıf kitaplığı , bir uygulama tarafından çağrılan türleri ve yöntemleri tanımlar. kitaplık .NET Standard 2,0 hedefliyorsa, .NET Standard 2,0 ' yi destekleyen herhangi bir .net uygulamasıyla (.NET Framework dahil) çağrılabilir. Kitaplık .NET 5 ' i hedefliyorsa, .NET 5 ' i hedefleyen herhangi bir uygulama tarafından çağrılabilir. Bu öğreticide, .NET 5 ' in nasıl hedeflenecek gösterilmektedir.

Bir sınıf kitaplığı oluşturduğunuzda, bir üçüncü taraf bileşen olarak veya bir veya daha fazla uygulamayla paketlenmiş bileşen olarak dağıtabilirsiniz.

Önkoşullar

  1. C# uzantısı yüklü Visual Studio Code . Visual Studio Code uzantıları nasıl yükleyeceğiniz hakkında daha fazla bilgi için bkz. VS Code uzantısı marketi.
  2. .Net 5,0 SDK veya üzeri

Çözüm oluşturma

' De Sınıf Kitaplığı projesini yerleştirmek için boş bir çözüm oluşturarak başlayın. Bir çözüm, bir veya daha fazla proje için kapsayıcı görevi görür. Aynı çözüme ek ve ilgili projeler ekleyeceksiniz.

  1. Visual Studio Code’u başlatın.

  2. Ana menüden Dosya > açma klasörünü (MacOS üzerinde Open... ) seçin

  3. Klasörü aç iletişim kutusunda bir classlibraryprojects klasörü oluşturun ve Klasör Seç ' e tıklayın (MacOS üzerinde açın ).

  4. ana menüden terminal görünümü ' nu seçerek Visual Studio Code açın > .

    Terminal , classlibraryprojects klasöründe komut istemiyle açılır.

  5. Terminalde aşağıdaki komutu girin:

    dotnet new sln
    

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    The template "Solution File" was created successfully.
    

Sınıf kitaplığı projesi oluşturma

Çözüme "StringLibrary" adlı yeni bir .NET sınıf kitaplığı projesi ekleyin.

  1. Terminalde, kitaplık projesini oluşturmak için aşağıdaki komutu çalıştırın:

    dotnet new classlib -o StringLibrary
    

    -oOr --output komutu oluşturulan çıkışın yerleştirileceği konumu belirtir.

    Terminal çıktısı aşağıdaki örneğe benzer şekilde görünür:

    The template "Class library" was created successfully.
    Processing post-creation actions...
    Running 'dotnet restore' on StringLibrary\StringLibrary.csproj...
      Determining projects to restore...
      Restored C:\Projects\ClassLibraryProjects\StringLibrary\StringLibrary.csproj (in 328 ms).
    Restore succeeded.
    
  2. Kitaplık projesini çözüme eklemek için aşağıdaki komutu çalıştırın:

    dotnet sln add StringLibrary/StringLibrary.csproj
    

    Terminal çıkışı aşağıdaki örnekteki gibi görünüyor:

    Project `StringLibrary\StringLibrary.csproj` added to the solution.
    
  3. Kitaplığın .NET 5'i hedefleyeli olduğundan emin olun. Explorer'da StringLibrary/StringLibrary.csproj'yi açın.

    TargetFrameworköğesi, projenin .NET 5.0'a yönelik olduğunu gösterir.

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
      </PropertyGroup>
    
    </Project>
    
  4. Class1.cs'yi açın ve kodu aşağıdaki kodla değiştirin.

    using System;
    
    namespace UtilityLibraries
    {
        public static class StringLibrary
        {
            public static bool StartsWithUpper(this string str)
            {
                if (string.IsNullOrWhiteSpace(str))
                    return false;
    
                char ch = str[0];
                return char.IsUpper(ch);
            }
        }
    }
    

    sınıf kitaplığı, UtilityLibraries.StringLibrary adlı bir yöntem StartsWithUpper içerir. Bu yöntem, geçerli Boolean dize örneğinin büyük harf karakteriyle başlayıp başlan olmadığını belirten bir değer döndürür. Unicode standardı, büyük harfleri küçük harflerden ayırt ediyor. bir Char.IsUpper(Char) karakter büyük harf ise yöntemi true döndürür.

    StartsWithUpper , bir uzantı yöntemi olarak uygulanır, böylece sınıfına üye gibi String çağırmış oluruz. Sonrasındaki soru işareti ( ? ) string dizenin null olduğunu gösterir.

  5. Dosyayı kaydedin.

  6. Çözümü derlemek ve projenin hatasız derlenmiş olduğunu doğrulamak için aşağıdaki komutu çalıştırın.

    dotnet build
    

    Terminal çıkışı aşağıdaki örnekteki gibi görünüyor:

    Microsoft (R) Build Engine version 16.7.0+b89cb5fde for .NET
    Copyright (C) Microsoft Corporation. All rights reserved.
      Determining projects to restore...
      All projects are up-to-date for restore.
      StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net5.0\StringLibrary.dll
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:02.78
    

Çözüme konsol uygulaması ekleme

Sınıf kitaplığını kullanan bir konsol uygulaması ekleyin. Uygulama, kullanıcıdan bir dize girmesini ister ve dizenin büyük harf karakteriyle baş harfle başladığını bildirecek.

  1. Konsol uygulaması projesini oluşturmak için terminalde aşağıdaki komutu çalıştırın:

    dotnet new console -o ShowCase
    

    Terminal çıkışı aşağıdaki örnekteki gibi görünüyor:

    The template "Console Application" was created successfully.
    Processing post-creation actions...
    Running 'dotnet restore' on ShowCase\ShowCase.csproj...  
      Determining projects to restore...
      Restored C:\Projects\ClassLibraryProjects\ShowCase\ShowCase.csproj (in 210 ms).
    Restore succeeded.
    
  2. Konsol uygulaması projesini çözüme eklemek için aşağıdaki komutu çalıştırın:

    dotnet sln add ShowCase/ShowCase.csproj
    

    Terminal çıkışı aşağıdaki örnekteki gibi görünüyor:

    Project `ShowCase\ShowCase.csproj` added to the solution.
    
  3. ShowCase/Program.cs'yi açın ve kodun tüm yerine aşağıdaki kodu girin.

    using System;
    using UtilityLibraries;
    
    class Program
    {
        static void Main(string[] args)
        {
            int row = 0;
    
            do
            {
                if (row == 0 || row >= 25)
                    ResetConsole();
    
                string input = Console.ReadLine();
                if (string.IsNullOrEmpty(input)) break;
                Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                                  $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}");
                row += 3;
            } while (true);
            return;
    
            // Declare a ResetConsole local method
            void ResetConsole()
            {
                if (row > 0)
                {
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
                Console.Clear();
                Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}");
                row = 3;
            }
        }
    }
    

    Kod, konsol row penceresine yazılan veri satırlarının sayısını korumak için değişkenlerini kullanır. 25'e eşit veya daha büyük olduğunda, kod konsol penceresini temizler ve kullanıcıya bir ileti görüntüler.

    Program, kullanıcıdan bir dize girmesini istenir. Dizenin büyük harf karakterle başlatıp başlamay olmadığını gösterir. Kullanıcı bir dize girmeden Enter tuşuna basıyorsa uygulama sona erer ve konsol penceresi kapanır.

  4. Yaptığınız değişiklikleri kaydedin.

Proje başvurusu ekleme

Başlangıçta, yeni konsol uygulaması projesinin sınıf kitaplığına erişimi yok. Sınıf kitaplığında yöntemleri çağıracak şekilde izin vermek için sınıf kitaplığı projesine bir proje başvurusu oluşturun.

  1. Şu komutu çalıştırın:

    dotnet add ShowCase/ShowCase.csproj reference StringLibrary/StringLibrary.csproj
    

    Terminal çıkışı aşağıdaki örnekteki gibi görünüyor:

    Reference `..\StringLibrary\StringLibrary.csproj` added to the project.
    

Uygulamayı çalıştırma

  1. Terminalde aşağıdaki komutu çalıştırın:

    dotnet run --project ShowCase/ShowCase.csproj
    
  2. Dizeleri girerek ve Enter tuşuna basarak programı deneyin, ardından çıkmakiçin Enter tuşuna basın.

    Terminal çıkışı aşağıdaki örnekteki gibi görünüyor:

    Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
    
    A string that starts with an uppercase letter
    Input: A string that starts with an uppercase letter
    Begins with uppercase? : Yes
    
    a string that starts with a lowercase letter
    Input: a string that starts with a lowercase letter
    Begins with uppercase? : No
    

Ek kaynaklar

Sonraki adımlar

Bu öğreticide bir çözüm oluşturdunız, bir kitaplık projesi eklediniz ve kitaplığı kullanan bir konsol uygulaması projesi eklediniz. Sonraki öğreticide, çözüme bir birim testi projesi eksersiniz.

Bu öğretici yalnızca .NET 5 ve .NET 6 için kullanılabilir. Sayfanın üst kısmında bu seçeneklerden birini belirleyin.