Ubuntu C# Console Menu Oluşturma

Ubuntu C# Console Menu Oluşturma

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.

Ubuntu C# Console Menu Oluşturma

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.

Ubuntu C# Console Menu Oluşturma
Ubuntu C# Console Menu Oluşturma

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;
				}
			}
		}
	}
}
Ubuntu C# Console Menu Oluşturma

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

Ubuntu C# Console Menu Oluşturma
dotnet build

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

Ubuntu C# Console Menu Oluşturma

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.

Ubuntu C# Console Menu Oluşturma

uygulamayı çalıştırmak için

./menu

Komutunu çalıştırmamız gerekiyor.

Ubuntu C# Console Menu Oluşturma
Ubuntu C# Console Menu Oluşturma

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

Ubuntu C# Console Menu Oluşturma

Saygılarımla,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir