Dela via


Självstudie: Skapa ett .NET-klassbibliotek med Visual Studio Code

I den här självstudien skapar du ett enkelt verktygsbibliotek som innehåller en enda stränghanteringsmetod.

Ett klassbibliotek definierar typer och metoder som anropas av ett program. Om biblioteket är avsett för .NET Standard 2.0 kan det anropas av alla .NET-implementeringar (inklusive .NET Framework) som stöder .NET Standard 2.0. Om biblioteket är avsett för .NET 8 kan det anropas av alla program som riktar sig till .NET 8. Den här självstudien visar hur du riktar in dig på .NET 8.

När du skapar ett klassbibliotek kan du distribuera det som en komponent från tredje part eller som en paketerad komponent med ett eller flera program.

Förutsättningar

Skapa en lösning

Börja med att skapa en tom lösning för att placera klassbiblioteksprojektet i. En lösning fungerar som en container för ett eller flera projekt. Du lägger till ytterligare relaterade projekt i samma lösning.

  1. Starta Visual Studio Code.

  2. Välj Öppna filmapp> (Öppna... på macOS) på huvudmenyn

  3. I dialogrutan Öppna mapp skapar du mappen ClassLibraryProjects och klickar på Välj mapp (Öppna i macOS).

  4. Öppna terminaleni Visual Studio Code genom att välja Visa>terminal på huvudmenyn.

    Terminalenöppnas med kommandotolken i mappen ClassLibraryProjects.

  5. I terminalen anger du följande kommando:

    dotnet new sln
    

    Terminalutdata ser ut som i följande exempel:

    The template "Solution File" was created successfully.
    

Skapa ett klassbiblioteksprojekt

Lägg till ett nytt .NET-klassbiblioteksprojekt med namnet "StringLibrary" i lösningen.

  1. I terminalen kör du följande kommando för att skapa biblioteksprojektet:

    dotnet new classlib -o StringLibrary
    

    Kommandot -o eller --output anger platsen där de genererade utdata ska placeras.

    Terminalutdata ser ut som i följande exempel:

    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. Kör följande kommando för att lägga till biblioteksprojektet i lösningen:

    dotnet sln add StringLibrary/StringLibrary.csproj
    

    Terminalutdata ser ut som i följande exempel:

    Project `StringLibrary\StringLibrary.csproj` added to the solution.
    
  3. Kontrollera att biblioteket är avsett för .NET 8. Öppna StringLibrary/StringLibrary.csproj i Utforskaren.

    Elementet TargetFramework visar att projektet riktar in sig på .NET 8.0.

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
      </PropertyGroup>
    
    </Project>
    
  4. Öppna Class1.cs och ersätt koden med följande kod.

    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);
        }
    }
    

    Klassbiblioteket, UtilityLibraries.StringLibrary, innehåller en metod med namnet StartsWithUpper. Den här metoden returnerar ett Boolean värde som anger om den aktuella stränginstansen börjar med ett versalt tecken. Unicode-standarden skiljer versaler från gemener. Metoden Char.IsUpper(Char) returnerar true om ett tecken är versaler.

    StartsWithUpper implementeras som en tilläggsmetod så att du kan anropa den som om den var medlem i String klassen.

  5. Spara filen.

  6. Kör följande kommando för att skapa lösningen och kontrollera att projektet kompileras utan fel.

    dotnet build
    

    Terminalutdata ser ut som i följande exempel:

    Microsoft (R) Build Engine version 17.8.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\net8.0\StringLibrary.dll
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:02.78
    

Lägga till en konsolapp i lösningen

Lägg till ett konsolprogram som använder klassbiblioteket. Appen uppmanar användaren att ange en sträng och rapportera om strängen börjar med ett versalt tecken.

  1. I terminalen kör du följande kommando för att skapa konsolappprojektet:

    dotnet new console -o ShowCase
    

    Terminalutdata ser ut som i följande exempel:

    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. Kör följande kommando för att lägga till konsolappprojektet i lösningen:

    dotnet sln add ShowCase/ShowCase.csproj
    

    Terminalutdata ser ut som i följande exempel:

    Project `ShowCase\ShowCase.csproj` added to the solution.
    
  3. Öppna ShowCase/Program.cs och ersätt all kod med följande kod.

    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;
            }
        }
    }
    

    Koden använder variabeln row för att upprätthålla antalet rader med data som skrivits till konsolfönstret. När den är större än eller lika med 25 rensar koden konsolfönstret och visar ett meddelande till användaren.

    Programmet uppmanar användaren att ange en sträng. Det anger om strängen börjar med ett versalt tecken. Om användaren trycker på Retur utan att ange en sträng avslutas programmet och konsolfönstret stängs.

  4. Spara dina ändringar.

Lägga till en projektreferens

Till en början har det nya konsolappprojektet inte åtkomst till klassbiblioteket. Om du vill tillåta att den anropar metoder i klassbiblioteket skapar du en projektreferens till klassbiblioteksprojektet.

  1. Kör följande kommando:

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

    Terminalutdata ser ut som i följande exempel:

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

Kör appen

  1. Kör följande kommando i terminalen:

    dotnet run --project ShowCase/ShowCase.csproj
    
  2. Prova programmet genom att ange strängar och trycka på Retur och sedan trycka på Retur för att avsluta.

    Terminalutdata ser ut som i följande exempel:

    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
    

Ytterligare resurser

Nästa steg

I den här självstudien skapade du en lösning, lade till ett biblioteksprojekt och lade till ett konsolappprojekt som använder biblioteket. I nästa självstudie lägger du till ett enhetstestprojekt i lösningen.

I den här självstudien skapar du ett enkelt verktygsbibliotek som innehåller en enda stränghanteringsmetod.

Ett klassbibliotek definierar typer och metoder som anropas av ett program. Om biblioteket är avsett för .NET Standard 2.0 kan det anropas av alla .NET-implementeringar (inklusive .NET Framework) som stöder .NET Standard 2.0. Om biblioteket är avsett för .NET 7 kan det anropas av alla program som riktar sig till .NET 7. Den här självstudien visar hur du riktar in dig på .NET 7.

När du skapar ett klassbibliotek kan du distribuera det som en komponent från tredje part eller som en paketerad komponent med ett eller flera program.

Förutsättningar

Skapa en lösning

Börja med att skapa en tom lösning för att placera klassbiblioteksprojektet i. En lösning fungerar som en container för ett eller flera projekt. Du lägger till ytterligare relaterade projekt i samma lösning.

  1. Starta Visual Studio Code.

  2. Välj Öppna filmapp> (Öppna... på macOS) på huvudmenyn

  3. I dialogrutan Öppna mapp skapar du mappen ClassLibraryProjects och klickar på Välj mapp (Öppna i macOS).

  4. Öppna terminaleni Visual Studio Code genom att välja Visa>terminal på huvudmenyn.

    Terminalenöppnas med kommandotolken i mappen ClassLibraryProjects.

  5. I terminalen anger du följande kommando:

    dotnet new sln
    

    Terminalutdata ser ut som i följande exempel:

    The template "Solution File" was created successfully.
    

Skapa ett klassbiblioteksprojekt

Lägg till ett nytt .NET-klassbiblioteksprojekt med namnet "StringLibrary" i lösningen.

  1. I terminalen kör du följande kommando för att skapa biblioteksprojektet:

    dotnet new classlib -o StringLibrary
    

    Kommandot -o eller --output anger platsen där de genererade utdata ska placeras.

    Terminalutdata ser ut som i följande exempel:

    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. Kör följande kommando för att lägga till biblioteksprojektet i lösningen:

    dotnet sln add StringLibrary/StringLibrary.csproj
    

    Terminalutdata ser ut som i följande exempel:

    Project `StringLibrary\StringLibrary.csproj` added to the solution.
    
  3. Kontrollera att biblioteket riktar in sig på .NET 7. Öppna StringLibrary/StringLibrary.csproj i Utforskaren.

    Elementet TargetFramework visar att projektet riktar in sig på .NET 7.0.

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
      </PropertyGroup>
    
    </Project>
    
  4. Öppna Class1.cs och ersätt koden med följande kod.

    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);
        }
    }
    

    Klassbiblioteket, UtilityLibraries.StringLibrary, innehåller en metod med namnet StartsWithUpper. Den här metoden returnerar ett Boolean värde som anger om den aktuella stränginstansen börjar med ett versalt tecken. Unicode-standarden skiljer versaler från gemener. Metoden Char.IsUpper(Char) returnerar true om ett tecken är versaler.

    StartsWithUpper implementeras som en tilläggsmetod så att du kan anropa den som om den var medlem i String klassen.

  5. Spara filen.

  6. Kör följande kommando för att skapa lösningen och kontrollera att projektet kompileras utan fel.

    dotnet build
    

    Terminalutdata ser ut som i följande exempel:

    Microsoft (R) Build Engine version 16.7.4+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\net7.0\StringLibrary.dll
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:02.78
    

Lägga till en konsolapp i lösningen

Lägg till ett konsolprogram som använder klassbiblioteket. Appen uppmanar användaren att ange en sträng och rapportera om strängen börjar med ett versalt tecken.

  1. I terminalen kör du följande kommando för att skapa konsolappprojektet:

    dotnet new console -o ShowCase
    

    Terminalutdata ser ut som i följande exempel:

    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. Kör följande kommando för att lägga till konsolappprojektet i lösningen:

    dotnet sln add ShowCase/ShowCase.csproj
    

    Terminalutdata ser ut som i följande exempel:

    Project `ShowCase\ShowCase.csproj` added to the solution.
    
  3. Öppna ShowCase/Program.cs och ersätt all kod med följande kod.

    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;
            }
        }
    }
    

    Koden använder variabeln row för att upprätthålla antalet rader med data som skrivits till konsolfönstret. När den är större än eller lika med 25 rensar koden konsolfönstret och visar ett meddelande till användaren.

    Programmet uppmanar användaren att ange en sträng. Det anger om strängen börjar med ett versalt tecken. Om användaren trycker på Retur utan att ange en sträng avslutas programmet och konsolfönstret stängs.

  4. Spara dina ändringar.

Lägga till en projektreferens

Till en början har det nya konsolappprojektet inte åtkomst till klassbiblioteket. Om du vill tillåta att den anropar metoder i klassbiblioteket skapar du en projektreferens till klassbiblioteksprojektet.

  1. Kör följande kommando:

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

    Terminalutdata ser ut som i följande exempel:

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

Kör appen

  1. Kör följande kommando i terminalen:

    dotnet run --project ShowCase/ShowCase.csproj
    
  2. Prova programmet genom att ange strängar och trycka på Retur och sedan trycka på Retur för att avsluta.

    Terminalutdata ser ut som i följande exempel:

    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
    

Ytterligare resurser

Nästa steg

I den här självstudien skapade du en lösning, lade till ett biblioteksprojekt och lade till ett konsolappprojekt som använder biblioteket. I nästa självstudie lägger du till ett enhetstestprojekt i lösningen.

I den här självstudien skapar du ett enkelt verktygsbibliotek som innehåller en enda stränghanteringsmetod.

Ett klassbibliotek definierar typer och metoder som anropas av ett program. Om biblioteket är avsett för .NET Standard 2.0 kan det anropas av alla .NET-implementeringar (inklusive .NET Framework) som stöder .NET Standard 2.0. Om biblioteket riktar in sig på .NET 6 kan det anropas av alla program som riktar sig mot .NET 6. Den här självstudien visar hur du riktar in dig på .NET 6.

När du skapar ett klassbibliotek kan du distribuera det som en komponent från tredje part eller som en paketerad komponent med ett eller flera program.

Förutsättningar

Skapa en lösning

Börja med att skapa en tom lösning för att placera klassbiblioteksprojektet i. En lösning fungerar som en container för ett eller flera projekt. Du lägger till ytterligare relaterade projekt i samma lösning.

  1. Starta Visual Studio Code.

  2. Välj Öppna filmapp> (Öppna... på macOS) på huvudmenyn

  3. I dialogrutan Öppna mapp skapar du mappen ClassLibraryProjects och klickar på Välj mapp (Öppna i macOS).

  4. Öppna terminaleni Visual Studio Code genom att välja Visa>terminal på huvudmenyn.

    Terminalenöppnas med kommandotolken i mappen ClassLibraryProjects.

  5. I terminalen anger du följande kommando:

    dotnet new sln
    

    Terminalutdata ser ut som i följande exempel:

    The template "Solution File" was created successfully.
    

Skapa ett klassbiblioteksprojekt

Lägg till ett nytt .NET-klassbiblioteksprojekt med namnet "StringLibrary" i lösningen.

  1. I terminalen kör du följande kommando för att skapa biblioteksprojektet:

    dotnet new classlib -f net6.0 -o StringLibrary
    

    Kommandot -f eller --framework ändrar standardmålramverket till net6.0 version.

    Kommandot -o eller --output anger platsen där de genererade utdata ska placeras.

    Terminalutdata ser ut som i följande exempel:

    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. Kör följande kommando för att lägga till biblioteksprojektet i lösningen:

    dotnet sln add StringLibrary/StringLibrary.csproj
    

    Terminalutdata ser ut som i följande exempel:

    Project `StringLibrary\StringLibrary.csproj` added to the solution.
    
  3. Kontrollera att biblioteket är avsett för .NET 6. Öppna StringLibrary/StringLibrary.csproj i Utforskaren.

    Elementet TargetFramework visar att projektet riktar in sig på .NET 6.0.

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net6.0</TargetFramework>
      </PropertyGroup>
    
    </Project>
    
  4. Öppna Class1.cs och ersätt koden med följande kod.

    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);
        }
    }
    

    Klassbiblioteket, UtilityLibraries.StringLibrary, innehåller en metod med namnet StartsWithUpper. Den här metoden returnerar ett Boolean värde som anger om den aktuella stränginstansen börjar med ett versalt tecken. Unicode-standarden skiljer versaler från gemener. Metoden Char.IsUpper(Char) returnerar true om ett tecken är versaler.

    StartsWithUpper implementeras som en tilläggsmetod så att du kan anropa den som om den var medlem i String klassen.

  5. Spara filen.

  6. Kör följande kommando för att skapa lösningen och kontrollera att projektet kompileras utan fel.

    dotnet build
    

    Terminalutdata ser ut som i följande exempel:

    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
    

Lägga till en konsolapp i lösningen

Lägg till ett konsolprogram som använder klassbiblioteket. Appen uppmanar användaren att ange en sträng och rapportera om strängen börjar med ett versalt tecken.

  1. I terminalen kör du följande kommando för att skapa konsolappprojektet:

    dotnet new console -f net6.0 -o ShowCase
    

    Terminalutdata ser ut som i följande exempel:

    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. Kör följande kommando för att lägga till konsolappprojektet i lösningen:

    dotnet sln add ShowCase/ShowCase.csproj
    

    Terminalutdata ser ut som i följande exempel:

    Project `ShowCase\ShowCase.csproj` added to the solution.
    
  3. Öppna ShowCase/Program.cs och ersätt all kod med följande kod.

    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;
            }
        }
    }
    

    Koden använder variabeln row för att upprätthålla antalet rader med data som skrivits till konsolfönstret. När den är större än eller lika med 25 rensar koden konsolfönstret och visar ett meddelande till användaren.

    Programmet uppmanar användaren att ange en sträng. Det anger om strängen börjar med ett versalt tecken. Om användaren trycker på Retur utan att ange en sträng avslutas programmet och konsolfönstret stängs.

  4. Spara dina ändringar.

Lägga till en projektreferens

Till en början har det nya konsolappprojektet inte åtkomst till klassbiblioteket. Om du vill tillåta att den anropar metoder i klassbiblioteket skapar du en projektreferens till klassbiblioteksprojektet.

  1. Kör följande kommando:

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

    Terminalutdata ser ut som i följande exempel:

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

Kör appen

  1. Kör följande kommando i terminalen:

    dotnet run --project ShowCase/ShowCase.csproj
    
  2. Prova programmet genom att ange strängar och trycka på Retur och sedan trycka på Retur för att avsluta.

    Terminalutdata ser ut som i följande exempel:

    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
    

Ytterligare resurser

Nästa steg

I den här självstudien skapade du en lösning, lade till ett biblioteksprojekt och lade till ett konsolappprojekt som använder biblioteket. I nästa självstudie lägger du till ett enhetstestprojekt i lösningen.