„Sznikák példakódok” változatai közötti eltérés

Kiskoza (vitalap | szerkesztései)
public static void Main(string[] args
 
a ConsoleColor nevű osztályt nem találja a VS-2017, helyette Color lett.
 
(27 közbenső módosítás, amit 6 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{Vissza|Szoftvertechnikák}}
{{Vissza|Szoftvertechnikák}}
{{FejlesztesAlatt}}


{{Infobox
{{Infobox
12. sor: 10. sor:
}}
}}
}}
}}
<syntaxhighlight lang="csharp">
  class ThreadTestClass
  class ThreadTestClass
  {  
  {  
39. sor: 38. sor:
     }  
     }  
  }
  }
</syntaxhighlight>
{{Infobox
| cím = Kapcsolatalapú hozzáférés
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Ismertesse egy rövid C# példán keresztül az ADO.NET kapcsolatalapú adathozzáférést
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
SqlConnection conn = null;
try
{
    // Kapcsolódás azadatbázishoz
    conn = new SqlConnection(@"Data Source=LAPTOP\SQLEXPRESS;
          InitialCatalog=Northwind;Integrated Security=True");
    // A kapcsolat megnyitása
    conn.Open();
    // Az adatbázis parancs létrehozása
    SqlCommand command = new SqlCommand("SELECT ShipperID, CompanyName, Phone FROM Shippers");
    // Adatbázis kapcsolat megadása
    command.Connection = conn;
    Console.WriteLine("{0,0}{1,15}{2,15}", "ShipperID", "CompanyName", "Phone");
    Console.WriteLine("-----------------------------------------------------------------");
    // Az adatok lekérdezése és kiiratása
    using (SqlDataReader reader = command.ExecuteReader())
    {
      while (reader.Read())
      Console.WriteLine("{0,4}{1,20}{2,20}",
                          reader["ShipperID"].ToString(),
                          reader["CompanyName"].ToString(),
                          reader["Phone"].ToString());
    }
}
catch (Exception ex)
{
    // Kivétel szövegének kiiratása
    Console.WriteLine(ex.Message);
}
finally
{
    // Az adatbázis kapcsolat lezárása, ha meg lett nyitva
    if((conn!=null)&&(conn.State==System.Data.ConnectionState.Open))
      conn.Close();
}
</syntaxhighlight>
{{Infobox
| cím = Eseménykezelés
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Írj egy Form alapú programot, ami MessageBox-ban megjeleníti a leütött billentyűt!
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
public partial class MainForm : Form
{
    public MainForm()
    {
      InitializeComponent();
      this.KeyDown += new KeyEventHandler(this.MainForm_KeyDown);
    }
    protected override void OnKeyDown(KeyEventArgs e)
    {
      // Meghívjuk az eredeti függvényt is
      base.OnKeyDown(e);
      MessageBox.Show("A billentyű (virt. fv.): " + e.KeyCode.ToString());
    }
    private void MainForm_KeyDown(object sender, KeyEventArgs e)
    {
      MessageBox.Show("A billentyű (eseménykez.): " + e.KeyCode.ToString());
    }
}
</syntaxhighlight>
{{Infobox
| cím = Négyzet rajzolás
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Írjon olyan C# nyelvű alkalmazásrészletet, amely a (10,20) koordinátában megjelenít egy közepesen szürke színnel kitöltött 10 pixel hosszúságú négyzetet. A négyzet színe minden "r" bilentyű megnyomására legyen egyre sötétebb. A megjelenítés GDI-re épüljön.
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
public partial class Form1 : Form
{
    private Brush brush;
    private int grey = 200;
    public Form1()
    {
      InitializeComponent();
    }
    protected override void OnKeyDown(KeyEventArgs e)
    {
      base.OnKeyDown(e);
      if(e.KeyCode == Keys.R) {
          grey -= 10;
          if(grey == 0) // ha elértük a színtartomány végét
            grey = 200;
          Invalidate();
      }
    }
    protected override void OnPaint(PaintEventArgs e)
    {
      base.OnPaint(e);
      using (brush = new SolidBrush(Color.FromArgb(grey, grey, grey)))
      {
          e.Graphics.FillRectrangle(brush, 10, 20, 10, 10);  // brush, x, y, width, height
      }
    }
}
</syntaxhighlight>
{{Infobox
| cím = String rajzolás
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Írjon olyan C# nyelvű alkalmazásrészletet, ami a (20,20) kokrdinátában megjeleníti, hogy a legutóbbi egérkattintás óta hány másodperc telt el! A megjelenítés GDI-re épüljön.
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
public partial class Form1 : Form
{
    DateTime lastClick;
    String strDeltaTime;
    public Form1()
    {
      InitializeComponent();
      this.MouseClick += new MouseEventHandler(Form1_MouseClick);
     
      lastClick = null;
      strDeltaTime = "0";
    }
    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
      if (lastClick = null)
          lastClick = DateTime.Now;
      else
      {
          TimeSpan deltaTime = DateTime.Now.Subtract(lastClick);
          lastClick = DateTime.Now;
          strDeltaTime = deltaTime.Seconds.ToString();
          Invalidate(); // érvényteleníteni kell az ablak területet, hogy az új érték látszódjon
      }
    }
    protected override void OnPaint(PaintEventArgs e)
    {
      e.Graphics.DrawString(strDeltaTime, this.Font, new SolidBrush(Color.Black), 20, 20);
      base.OnPaint(e);
    }
}
</syntaxhighlight>
{{Infobox
| cím = Háttérszál
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Írjon programot, ami egy háttérszálban egy perc alatt el számol 1-től 60-ig, és az aktuális értéket kiírja a konzolra.
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
public class Program
{
    public static void Main(string[] args)
    {
      Thread t = new Thread(new ThreadStart(Szamol));
      t.IsBackground = true;
      t.Start();
    }
    public static void Szamol()
    {
      int szam = 0;
      while(szam < 60)
      {
          Thread.Sleep(1000);
          szam++;
          Console.WriteLine("A számláló értéke: {0}",szam.ToString());
      }
    }
}
</syntaxhighlight>
{{Infobox
| cím = Singleton példa
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Singleton tervezési minta implementálása C# nyelven
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
public class Singleton
{
    private static Singleton instance = null;
    public static Singleton Instance
    {
      get
      {
          if (instance == null)
            instance = new Singleton();
          return instance;
      }
    }
    protected Singleton() {} // Ne lehessen elérni a konstruktorát
    public void Print() {/* ... */}
}
</syntaxhighlight>
<syntaxhighlight lang="csharp">
// Használata:
Singleton s1 = Singleton.Instance;
s1.Print();
// Vagy:
Singleton.Instance.Print();
</syntaxhighlight>
{{Infobox
| cím = Kapcsolat nélküli hozzáférés
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Ismertesse egy rövid C# példán keresztül az ADO.NET kapcsolat nélküli adathozzáférését!
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
class SelectIntoDataSet{
    public static void Main(){
      string connectionString = "...";
      SqlConnection mySqlConnection = new SqlConnection(connectionString);
     
      // Vagy bármi más lekérdezés, amit kérnek
      string selectString = "SELECT TOP 10 ID, FirstName, LastName FROM Employee ORDER BY ID";
      SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
      mySqlCommand.CommandText = selectString;
      SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
      mySqlDataAdapter.SelectCommand = mySqlCommand;
      DataSet myDataSet = new DataSet();
      mySqlConnection.Open();          // Megnyitjuk
      Console.WriteLine("Retrieving rows from the Employee table");
      mySqlDataAdapter.Fill(myDataSet, "Employee");  // Kiolvasunk mindent
      mySqlConnection.Close();          // És rögtön be is zárjuk
      // És csak utána kezdjük el feldolgozni
      DataTable myDataTable = myDataSet.Tables["Employee"];
      foreach (DataRow myDataRow in myDataTable.Rows){
          Console.WriteLine("ID = "+ myDataRow["ID"]);
          Console.WriteLine("FirstName = "+ myDataRow["FirstName"]);
          Console.WriteLine("LastName = "+ myDataRow["LastName"]);
      }
    }
}
</syntaxhighlight>
{{Infobox
| cím = Attribútumok használata
| háttérszín = #C0ffee
| keretszín = black
| tartalom =
Mutasson példát attribútumokra C# nyelven (saját attributee létrehozás, használat, lekérdezés)
{{Infobox-táblázat|
{{Infobox-táblázatsor|A kód nyelve|C#}}
}}
}}
<syntaxhighlight lang="csharp">
[AttributeUsage(AttributeTargets.All)]
public class AuthorAttribute : System.Attribute
{
    public readonly string name;
    public AuthorAttribute(string _name)
    {
      name = _name;
    }
    public string Name
    {
      get
      {
          return name;
      }
    }
}
</syntaxhighlight>
<syntaxhighlight lang="csharp">
// Használata
[Author("Béla Béla")]
class JustASimpleClass
{
// ...
}
</syntaxhighlight>
<syntaxhighlight lang="csharp">
// Lekérdezés
foreach( object attribute in something.GetCustomAttributes(true))
{
    Console.WriteLine(attribute);
}
</syntaxhighlight>
[[Kategória:Mérnök_informatikus]]
A lap eredeti címe: „https://vik.wiki/Sznikák_példakódok