get ()
{
// Dette genererer nogle tilfældige vejrprognosedata
var rng =ny tilfældig ();
returntoterbart.range (1, 5) .væl (indeks => ny WeatherForeCast
{
Dato =datetime.now.adddays (indeks),
Temperaturec =rng.next (-20, 55),
Resume =resume [rng.next (resume.length)]
})
.ToArray ();
}
}
// Dette er en simpel datamodel, der repræsenterer en vejrprognose
Public Class WeatherCast
{
offentlig datetime dato {get; sæt; }
public int Temperaturec {get; sæt; }
public String Summary {get; sæt; }
// Dette er en egenskab, der beregner temperaturen i Fahrenheit
offentlig int temperaturf => 32 + (int) (temperaturec / 0,5556);
}
}
`` `
Forklaring:
1. Brug af direktiver:
* `Brug af system;`:Importerer systemnavneområdet, der leverer grundlæggende klasser som 'DateTime', 'tilfældigt' osv.
* `Brug af System.Collections.Generic;`:Importerer de generiske samlinger navneområde, leverer klasser som `Ienumerable ',' List 'osv.
* `Brug af System.linq;`:Importer LINQ -navneområdet og leverer metoder til at arbejde med samlinger.
* `Brug af System.Threading.Tasks;`:Importerer opgavens navneområde, hvilket giver mulighed for asynkrone operationer.
* `Brug af Microsoft.aspnetcore.mvc;`:Importerer ASP.NET Core MVC -navneområdet, leverer klasser som `controllerbase`,` httpget`, `apicontroller` osv.
2. Navneområde:
* `Navneområdet MyASpNetCoreApp ':Definerer navneområdet for koden, som hjælper med at organisere og undgå navneskonflikter.
3. Controllerklasse:
* `[Apicontroller]`:En attribut, der angiver, at denne klasse er en controller, der er ansvarlig for håndtering af anmodninger.
* `[Rute (" [Controller] ")]`:Definerer basisruten for controlleren, hvilket betyder, at anmodninger til `/WeatherForEcast 'vil blive håndteret af denne controller.
* `Public Class WeatherForEcastController:ControllerBase`:Denne linje definerer controllerklassen, der arver fra` controllerbase '. Klassen 'ControllerBase' giver metoder til håndtering af HTTP -anmodninger og -svar.
4. Handlingsmetode:
* `[Httpget]`:attribut, der specificerer denne metode, der håndterer få anmodninger.
* `Offentlig IEnumerable get ()`:Metoddefinitionen.
* `IEnumerable `:Returtypen, hvilket indikerer, at denne metode vil returnere en samling af `WeatherForEcast '-objekter.
* `Get ()`:Metodnavnet, som også er ruten til denne specifikke anmodning.
* Inde i metoden:
* `var rng =new Random ();`:Opretter en ny forekomst af klassen `tilfældig ', der bruges til at generere tilfældige værdier.
* `Enumerable.range (1, 5) .væl (indeks => Ny WeatherForeCast ...)`:Denne linje opretter en samling af 5 vejrprognoser ved hjælp af LINQ.
* `return ... .ToArray ();`:Returnerer den genererede samling som en matrix.
5. Datamodel:
* `Public Class WeatherCast ':definerer en simpel klasse, der repræsenterer en vejrprognose.
* `offentlig datetime dato {get; sæt; } `:Repræsenterer datoen for prognosen.
* `public int temperaturec {get; sæt; } `:Repræsenterer temperaturen i Celsius.
* `offentlig strengoversigt {get; sæt; } `:Repræsenterer et resumé af vejrforholdene.
* `offentlig int temperaturf => 32 + (int) (temperaturec / 0,5556);`:En beregnet egenskab, der konverterer Celsius til Fahrenheit.
Sammendrag:
Dette program demonstrerer den grundlæggende struktur for en ASP.NET Core MVC -applikation, herunder:
* controller: Håndtag anmodninger baseret på ruter.
* Handlingsmetode: Processer specifikke anmodninger inden for en controller.
* Datamodel: Repræsenterer de data, der håndteres af applikationen.
* attributter: Bruges til at definere opførslen af klasser og metoder.
Dette eksempel er enkelt, men det giver et fundament for at opbygge mere komplekse applikationer. Du kan udvide det ved at tilføje flere controllere, handlingsmetoder og datamodeller samt bruge andre ASP.NET -kernefunktioner som middleware, afhængighedsinjektion og databaseintegration.