KO CSharp Structure - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Π£ΠΊΡΠ°ΡΠ½ΡΡΠΊΠ° Β· Π ΡΡΡΠΊΠΈΠΉ Β· English Β· Deutsch Β· FranΓ§ais Β· Italiano Β· EspaΓ±ol Β· ηΉι«δΈζ Β· ζ₯ζ¬θͺ Β· νκ΅μ΄
C# νλ‘κ·Έλ¨μ μ ν μ μΈ, λ©μλ, ννμ λ° μ°μ°μλ‘ κ΅¬μ±λ©λλ€. usingλ λ€μμ€νμ΄μ€λ₯Ό μ°κ²°ν©λλ€. namespace μ νμ ꡬμ±ν©λλ€. ν΄λμ€λ λ°μ΄ν°μ λμμ μ μ₯ν©λλ€. λ©μλ μ½λλ { } μμ μμΌλ©° μΌλ° λͺ
λ Ήλ¬Έμ ;λ‘ λλ©λλ€.
μ΄ μμ λ₯Ό Example.csxλ‘ λ°λ‘ μ μ₯νκ³ μ΄ νμ΄μ§μ λ€λ₯Έ μμ μ λ
립μ μΌλ‘ μ€ννμΈμ.
Example.csx:
UO.Print("Ready");
await WaitAsync(10);
UO.Print("Done");κ²°κ³Ό:
Ready
Done
μ΄ μμ λ₯Ό Program.csλ‘ λ°λ‘ μ μ₯νκ³ μ΄ νμ΄μ§μ λ€λ₯Έ μμ μ λ
립μ μΌλ‘ μ€ννμΈμ.
Program.cs:
// PROJECT-EXAMPLE
System.Console.WriteLine("Ready");Minimal.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>
<ItemGroup><Compile Include="Program.cs" /></ItemGroup>
</Project>dotnet run --project Minimal.csprojκ²°κ³Ό (Minimal.csproj):
Ready
ν¬ν¨λ μ€ν¬λ¦½νΈλ UO, Args, Cancellation λ° WaitAsyncμ μμ ν©λλ€. λͺ
λ Ήλ¬Έμ μμμ μλλ‘ μ€νλ©λλ€. ν΄λμ€ Programλ νμνμ§ μμ΅λλ€.
string message = "Script started";
UO.Print(message);
await WaitAsync(100);
UO.Print($"X={UO.GetX()}, Y={UO.GetY()}");ν¨μλ₯Ό μ μΈνλ€κ³ ν΄μ κ·Έ μμ²΄κ° μ€νλλ κ²μ μλλλ€. ReportPosition()λΌλ μ νλ κ·Έλ
μ λͺΈμμ μ΄λ£¨μ΄μ§λλ€.
void ReportPosition()
{
int x = UO.GetX();
int y = UO.GetY();
UO.Print($"Position: {x}, {y}");
}
ReportPosition();
await WaitAsync(100);
ReportPosition();μΌλ°μ μΈ νλ‘μ νΈμμ μ§μ
μ μ Main λλ μ΅μμ μ½λμ
λλ€. λ€μμ€νμ΄μ€, μ¬λ¬ νμΌ λ° μ¬μ©μ μ μ λΌμ΄λΈλ¬λ¦¬λ νμ€ C# νλ‘μ νΈλ‘ μ€κ³λμμ΅λλ€.
// PROJECT-EXAMPLE
using System;
namespace UserTools;
internal static class Program
{
private static int Main(string[] args)
{
Console.WriteLine(args.Length > 0 ? args[0] : "Ready");
return 0;
}
}.csprojλ λμ νλ«νΌ, μμ€, μ’
μμ± λ° μ»΄νμΌ μ΅μ
μ μ€λͺ
ν©λλ€. .cs μ½λλ₯Ό μ μ₯ν©λλ€. .csxλ μ€ν¬λ¦½νΈ μ€νμ μν μ€ν¬λ¦½νΈλ₯Ό λνλ
λλ€. νμ₯μλ₯Ό λ³κ²½ν΄λ νλ‘κ·Έλ¨μ ꡬ쑰λ μ§μ
μ μ΄ μλμΌλ‘ λ³κ²½λμ§λ μμ΅λλ€.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>μΌλ°μ μΈ κ΅¬μ‘°: MyScript.csproj, Program.cs, Models/, Services/. μμ μλ리μ€μμλ .csx νλλ©΄ μΆ©λΆν©λλ€. κ²μ ν΄λμ€μμ APIλ λ§€κ°λ³μλ νλλ₯Ό ν΅ν΄ λͺ
μμ μΌλ‘ μ λ¬λ©λλ€. μμμ μΌλ° νλ‘μ νΈλ μ체μ μΌλ‘ μ μ UOλ₯Ό μμ νμ§ μμ΅λλ€.
곡μ λ¬Έμ: νλ‘κ·Έλ¨ λ° μ€ν¬λ¦½νΈ ꡬ쑰 - Microsoft Learn.
μΌλ° .cs λλ .csproj μ½λμμλ μ΄μ
λΈλ¦¬μ ICSharpScriptκ° μμ΄λ Mainμ΄λ μ΅μμ λ¬Έμ΄ μ°μ ν©λλ€. μ€ν κ°λ₯ν μ§μ
μ μ΄ μμΌλ©΄ publicμ΄κ³ μΆμ νμμ΄ μλλ©° public λ§€κ° λ³μ μλ μμ±μκ° μλ ICSharpScript ν΄λμ€λ₯Ό νλ μ 곡ν΄μΌ ν©λλ€. μΌλ° μ½λλ μ λ¬λ°μ 컨ν
μ€νΈλ CSharpScriptContext.Currentλ₯Ό ν΅ν΄ κ²μ APIλ₯Ό μ¬μ©νλ©° μ μΈλμ§ μμ μ μ UO λ³μλ₯Ό μλμΌλ‘ λ°μ§ μμ΅λλ€.