„Sznikák példakódok” változatai közötti eltérés
Ugrás a navigációhoz
Ugrás a kereséshez
(Háttérszál) |
a (ConsoleColor nevű osztályt nem találja a VS-2017, helyette Color lett.) |
||
(22 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 | ||
51. 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(); | ||
85. sor: | 86. sor: | ||
conn.Close(); | conn.Close(); | ||
} | } | ||
− | + | </syntaxhighlight> | |
{{Infobox | {{Infobox | ||
97. sor: | 98. sor: | ||
}} | }} | ||
}} | }} | ||
+ | <syntaxhighlight lang="csharp"> | ||
public partial class MainForm : Form | public partial class MainForm : Form | ||
{ | { | ||
117. sor: | 119. sor: | ||
} | } | ||
} | } | ||
− | + | </syntaxhighlight> | |
{{Infobox | {{Infobox | ||
124. sor: | 126. sor: | ||
| keretszín = black | | keretszín = black | ||
| tartalom = | | 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 | + | Í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ázat| | ||
{{Infobox-táblázatsor|A kód nyelve|C#}} | {{Infobox-táblázatsor|A kód nyelve|C#}} | ||
}} | }} | ||
}} | }} | ||
+ | <syntaxhighlight lang="csharp"> | ||
public partial class Form1 : Form | public partial class Form1 : Form | ||
{ | { | ||
− | private Brush | + | private Brush brush; |
private int grey = 200; | private int grey = 200; | ||
143. sor: | 146. sor: | ||
base.OnKeyDown(e); | base.OnKeyDown(e); | ||
if(e.KeyCode == Keys.R) { | if(e.KeyCode == Keys.R) { | ||
+ | grey -= 10; | ||
if(grey == 0) // ha elértük a színtartomány végét | if(grey == 0) // ha elértük a színtartomány végét | ||
grey = 200; | grey = 200; | ||
− | |||
Invalidate(); | Invalidate(); | ||
} | } | ||
153. sor: | 156. sor: | ||
{ | { | ||
base.OnPaint(e); | base.OnPaint(e); | ||
− | using ( | + | using (brush = new SolidBrush(Color.FromArgb(grey, grey, grey))) |
{ | { | ||
− | e.Graphics.FillRectrangle( | + | e.Graphics.FillRectrangle(brush, 10, 20, 10, 10); // brush, x, y, width, height |
} | } | ||
} | } | ||
} | } | ||
− | + | </syntaxhighlight> | |
{{Infobox | {{Infobox | ||
171. sor: | 174. sor: | ||
}} | }} | ||
}} | }} | ||
− | DateTime lastClick; | + | <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 | {{Infobox | ||
199. sor: | 215. sor: | ||
| keretszín = black | | keretszín = black | ||
| tartalom = | | tartalom = | ||
− | Írjon programot, ami egy háttérszálban egy perc alatt | + | Í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ázat| | ||
{{Infobox-táblázatsor|A kód nyelve|C#}} | {{Infobox-táblázatsor|A kód nyelve|C#}} | ||
}} | }} | ||
}} | }} | ||
+ | <syntaxhighlight lang="csharp"> | ||
public class Program | public class Program | ||
{ | { | ||
− | public void | + | public static void Main(string[] args) |
{ | { | ||
− | Thread t = new Thread(Szamol); | + | Thread t = new Thread(new ThreadStart(Szamol)); |
t.IsBackground = true; | t.IsBackground = true; | ||
t.Start(); | t.Start(); | ||
} | } | ||
− | public void | + | public static void Szamol() |
{ | { | ||
− | + | int szam = 0; | |
− | + | while(szam < 60) | |
{ | { | ||
− | Sleep(1000); | + | Thread.Sleep(1000); |
szam++; | szam++; | ||
Console.WriteLine("A számláló értéke: {0}",szam.ToString()); | Console.WriteLine("A számláló értéke: {0}",szam.ToString()); | ||
224. sor: | 241. sor: | ||
} | } | ||
} | } | ||
+ | </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., 21: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);
}