„Sznikák példakódok” változatai közötti eltérés
A VIK Wikiből
kapcsolatalapú hozzáférés |
a ConsoleColor nevű osztályt nem találja a VS-2017, helyette Color lett. |
||
(26 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}} | ||
{{Infobox | {{Infobox | ||
12. sor: | 10. sor: | ||
}} | }} | ||
}} | }} | ||
<syntaxhighlight lang="csharp"> | |||
class ThreadTestClass | class ThreadTestClass | ||
{ | { | ||
39. sor: | 38. sor: | ||
} | } | ||
} | } | ||
</syntaxhighlight> | |||
{{Infobox | {{Infobox | ||
50. sor: | 50. sor: | ||
}} | }} | ||
}} | }} | ||
<syntaxhighlight lang="csharp"> | |||
SqlConnection conn = null; | SqlConnection conn = null; | ||
try | try | ||
{ | { | ||
// Kapcsolódás azadatbázishoz | // Kapcsolódás azadatbázishoz | ||
conn = new SqlConnection(@"Data Source=LAPTOP\SQLEXPRESS;InitialCatalog=Northwind;Integrated Security=True"); | conn = new SqlConnection(@"Data Source=LAPTOP\SQLEXPRESS; | ||
InitialCatalog=Northwind;Integrated Security=True"); | |||
// A kapcsolat megnyitása | // A kapcsolat megnyitása | ||
conn.Open(); | conn.Open(); | ||
84. sor: | 86. sor: | ||
conn.Close(); | 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: | [[Kategória:Mérnök_informatikus]] |
A lap jelenlegi, 2018. április 19., 22:38-kori változata
class ThreadTestClass
{
public static void Main(string[] args)
{
Thread t = null;
if (args.Length == 0)
{
t = new Thread(new ThreadStart(ThreadMethod1));
t.Start();
}
else
{
t = new Thread(new ParameterizedThreadStart(ThreadMethod2));
t.Start(args[0]);
}
}
public static void ThreadMethod1()
{
Console.WriteLine("Thread without parameter.");
}
public static void ThreadMethod2(object param)
{
Console.WriteLine("Thread with parameter: {0}", param.ToString());
}
}
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();
}
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());
}
}
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
}
}
}
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);
}
}
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());
}
}
}
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() {/* ... */}
}
// Használata:
Singleton s1 = Singleton.Instance;
s1.Print();
// Vagy:
Singleton.Instance.Print();
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"]);
}
}
}
[AttributeUsage(AttributeTargets.All)]
public class AuthorAttribute : System.Attribute
{
public readonly string name;
public AuthorAttribute(string _name)
{
name = _name;
}
public string Name
{
get
{
return name;
}
}
}
// Használata
[Author("Béla Béla")]
class JustASimpleClass
{
// ...
}
// Lekérdezés
foreach( object attribute in something.GetCustomAttributes(true))
{
Console.WriteLine(attribute);
}