GNU / Linux dağıtımlarında .Net Core ile C# uygulamaları geliştirebiliyoruz. C# ile örnek bir menüyü nasıl oluşturacağımızı görelim
Terminali açtıktan sonra
cd Desktop
Komutu ile Desktop dizinine giriyoruz.
dotnet new console -o menu
Komutu ile menu adında yeni bir proje oluşturuyoruz.

Projemizi oluşturduk. Şimdi
cd menu/
Komutu ile proje dizinimize giriyoruz.
nano Program.cs
Komutunu çalıştırarak Program.cs dosyamızı nano editor ile açalım.


Daha sonra hello world kodlarımızın hepsini silerek aşağıdaki kodları yapıştıralım.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Menu
{
static Int16 menusayisi = 6;
static string title = "Teknoforum";
static string[] menulistesi = new string[] { "0-Secim", "1-Secim", "2-Secim", "3-Secim", "4-Secim", "5-Secim" };
static string aciklama1 = "Çıkış: ESC";
static string aciklama2 = "Seçim: Up/Down | Sayılar";
static string aciklama3 = "Giriş: Enter";
static string coder = "Barbaros Kuşçular";
static string web = "www.teknoforum.org";
static void Main()
{
Int16 secim = 0;
Int16 secimnumara = 0;
Int16 secimnumaraeski;
System.Console.BackgroundColor = System.ConsoleColor.Black;
while (secim != Convert.ToChar(ConsoleKey.Escape))
{
menu(secimnumara);
secimnumaraeski = secimnumara;
secim = Convert.ToInt16(Console.ReadKey().Key);
secimnumara = secimyap(secim, secimnumara, menusayisi);
if (secimnumara == -1)
{
secimnumara = 0;
secimyapildi(secimnumaraeski);
}
}
}
static Int16 secimyap(Int16 secim, Int16 secimnumara, Int16 secimsayisi)
{
if (secim == Convert.ToChar("0"))
secimnumara = 0;
if (secim == Convert.ToChar("1"))
secimnumara = 1;
if (secim == Convert.ToChar("2"))
secimnumara = 2;
if (secim == Convert.ToChar("3"))
secimnumara = 3;
if (secim == Convert.ToChar("4"))
secimnumara = 4;
if (secim == Convert.ToChar("5"))
secimnumara = 5;
if (secim == Convert.ToChar(ConsoleKey.DownArrow))
if (secimnumara < secimsayisi - 1)
secimnumara += 1;
if (secim == Convert.ToChar(ConsoleKey.UpArrow))
if (secimnumara > 0)
secimnumara -= 1;
for (Int16 i = 48; i < 48 + secimsayisi; i++)
if (secim == i & secim == Convert.ToChar(i + 48))
secimnumara = Convert.ToInt16(i - 48);
if (secim == Convert.ToChar(ConsoleKey.Enter))
secimnumara = -1;
Console.Clear();
return secimnumara;
}
static void menu(Int16 secim)
{
cerceve(menusayisi);
for (Int16 i = 0; i < menusayisi; i++)
{
secimrengiver(secim, i);
System.Console.WriteLine(menulistesi[i]);
System.Console.SetCursorPosition(2, i + 2);
System.Console.BackgroundColor = System.ConsoleColor.Black;
}
}
static void cerceve(Int16 cerceveyukseklik)
{
Console.Clear();
System.Console.WriteLine("╔═════════════════════" + title + "═══════════════════╗");
for (int i = 0; i <= cerceveyukseklik; i++)
System.Console.WriteLine("║ ║");
System.Console.WriteLine("╚══════════════════════════════════════════════════╝");
Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(aciklama1 + " " + aciklama2 + " " + aciklama3);
Console.ForegroundColor = ConsoleColor.White;
System.Console.WriteLine("\n" + coder);
System.Console.WriteLine(web);
System.Console.SetCursorPosition(2, 1);
}
static void secimrengiver(int secim, Int16 sira)
{
if (secim == sira)
System.Console.BackgroundColor = System.ConsoleColor.Red;
else
System.Console.BackgroundColor = System.ConsoleColor.Black;
}
static void secimyapildi(Int16 secimnumara)
{
cerceve(menusayisi);
Console.Clear();
switch (secimnumara)
{
case 0:
{
System.Console.WriteLine("╔═════════════════════ " + menulistesi[0] + " ════════════════════╗");
for (int i = 0; i <= 6; i++)
System.Console.WriteLine("║ ║");
System.Console.WriteLine("╚══════════════════════════════════════════════════╝");
Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(aciklama1 + " " + aciklama2 + " " + aciklama3);
Console.ForegroundColor = ConsoleColor.White;
System.Console.WriteLine("\n" + coder);
System.Console.WriteLine(web);
System.Console.SetCursorPosition(2, 1);
System.Console.WriteLine(menulistesi[0] + " icerikleri");
System.Console.SetCursorPosition(2, 2);
Console.ReadKey(); break;
}
case 1:
{
System.Console.WriteLine("╔═════════════════════ " + menulistesi[1] + " ════════════════════╗");
for (int i = 0; i <= 6; i++)
System.Console.WriteLine("║ ║");
System.Console.WriteLine("╚══════════════════════════════════════════════════╝");
Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(aciklama1 + " " + aciklama2 + " " + aciklama3);
Console.ForegroundColor = ConsoleColor.White;
System.Console.WriteLine("\n" + coder);
System.Console.WriteLine(web);
System.Console.SetCursorPosition(2, 1);
System.Console.WriteLine(menulistesi[1] + " icerikleri");
System.Console.SetCursorPosition(2, 2);
Console.ReadKey(); break;
}
case 2:
{
System.Console.WriteLine("╔═════════════════════ " + menulistesi[2] + " ════════════════════╗");
for (int i = 0; i <= 6; i++)
System.Console.WriteLine("║ ║");
System.Console.WriteLine("╚══════════════════════════════════════════════════╝");
Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(aciklama1 + " " + aciklama2 + " " + aciklama3);
Console.ForegroundColor = ConsoleColor.White;
System.Console.WriteLine("\n" + coder);
System.Console.WriteLine(web);
System.Console.SetCursorPosition(2, 1);
System.Console.WriteLine(menulistesi[2] + " icerikleri");
System.Console.SetCursorPosition(2, 2);
Console.ReadKey(); break;
}
case 3:
{
System.Console.WriteLine("╔═════════════════════ " + menulistesi[3] + " ════════════════════╗");
for (int i = 0; i <= 6; i++)
System.Console.WriteLine("║ ║");
System.Console.WriteLine("╚══════════════════════════════════════════════════╝");
Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(aciklama1 + " " + aciklama2 + " " + aciklama3);
Console.ForegroundColor = ConsoleColor.White;
System.Console.WriteLine("\n" + coder);
System.Console.WriteLine(web);
System.Console.SetCursorPosition(2, 1);
System.Console.WriteLine(menulistesi[3] + " icerikleri");
System.Console.SetCursorPosition(2, 2);
Console.ReadKey(); break;
}
case 4:
{
System.Console.WriteLine("╔═════════════════════ " + menulistesi[4] + " ════════════════════╗");
for (int i = 0; i <= 6; i++)
System.Console.WriteLine("║ ║");
System.Console.WriteLine("╚══════════════════════════════════════════════════╝");
Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(aciklama1 + " " + aciklama2 + " " + aciklama3);
Console.ForegroundColor = ConsoleColor.White;
System.Console.WriteLine("\n" + coder);
System.Console.WriteLine(web);
System.Console.SetCursorPosition(2, 1);
System.Console.WriteLine(menulistesi[4] + " icerikleri");
System.Console.SetCursorPosition(2, 2);
Console.ReadKey(); break;
}
case 5:
{
System.Console.WriteLine("╔═════════════════════ " + menulistesi[5] + " ════════════════════╗");
for (int i = 0; i <= 6; i++)
System.Console.WriteLine("║ ║");
System.Console.WriteLine("╚══════════════════════════════════════════════════╝");
Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(aciklama1 + " " + aciklama2 + " " + aciklama3);
Console.ForegroundColor = ConsoleColor.White;
System.Console.WriteLine("\n" + coder);
System.Console.WriteLine(web);
System.Console.SetCursorPosition(2, 1);
System.Console.WriteLine(menulistesi[5] + " icerikleri");
System.Console.SetCursorPosition(2, 2);
Console.ReadKey(); break;
}
}
}
}
}

CRTL + O tuşuna basarak kaydedelim ve CTRL + X tuşu ile editorden çıkalım.

dotnet build
komutunu çalıştıralım ve projemizi derleyelim.

Projemiz başarılı bir şekilde derlendi. Şimdi derlenen dosyamızı çalıştırmak için uygulama klasörüne girelim
cd bin/Debug/netcoreapp3.0/
Komutunu çalıştırıyoruz.

uygulamayı çalıştırmak için
./menu
Komutunu çalıştırmamız gerekiyor.


Bizim oluşturduğumuz menü açıldı. Sayıları kullanarak yada okları kullanarak menüleri seçebilir ve enter ile menüye giriş yapabilirsiniz.

Saygılarımla,
COMMENTS
bilgilerin paylaşımı için teşekkürler benim bir sorum olacak menu de ad ve şifre girişi nasıl yaparız ?