Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
- Asustor NAS
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Windows 11
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- Mikrotik routerek
- AliExpress tapasztalatok
- Windows 10
- Milyen routert?
- Synology NAS
Új hozzászólás Aktív témák
-
Bumbi0
csendes tag
válasz ArchElf #1097 üzenetére
Nem értem, hogy mi szükség van konstruktorra.
Ilyesmire gondoltál? Mert így ilyen hibaüzenete kapok:
Error 1 A local variable named 'ghk' is already defined in this scopeprivate void textBB_KeyDown(object sender, KeyEventArgs e)
{
char chrHotkey;
string strHotkey;strHotkey = e.KeyData.ToString();
chrHotkey = strHotkey[0];switch (chrHotkey)
{
case 'A':
GlobalHotKey ghk = new GlobalHotKey(Win32.KeyCodes.VK_A, false, false, false, false);
ghk.Hotkey += new VoidEventHandler(Hotkey);
break;case 'B':
GlobalHotKey ghk = new GlobalHotKey(Win32.KeyCodes.VK_B, false, false, false, false);
ghk.Hotkey += new VoidEventHandler(Hotkey);
break;default:
break;
}}
-
ArchElf
addikt
Miért? Persze a kódban statikusan van megoldva, de ott a két függvény, amivel be és ki lehet regisztrálni hotkey-eket. Egyszerűen, amikor változtatni akarsz, akkor kiregisztrálod az előzőt, és beregisztrálsz egy újat.
Az ott közzétett rutinon csak annyit kell változtatni, hogy nem külön adod meg a módosítókat (SHIFT/ALT/CTRL/WIN), hanem azt a WinKey-t dolgozod fel egyből és adod át a függvénynek, amit a KeyDown esemény visszaad (e.KeyData).
Magyarán csinálsz egy olyan kontruktort is a GlobalHotKey osztálynak, ami a teljes (módosítókkal is ellátott KeyData értéket is fel tudja dolgozni).AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
ArchElf
addikt
Nem tudom, te hol találtad ezt a GlobalHotKey-t, de itt van róla egy kicsit bővebb magyar leírás: link
Amúgy ez az a két függvény:
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
[DllImport("user32.dll")]
public static extern bool UnRegisterHotKey(IntPtr hWnd, int id);AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
rvn_10
senior tag
-
QuippeR
tag
válasz Inv1sus #1071 üzenetére
Ha esetleg még nem ugrott az ötösöd, akkor segítek:
<%@ WebHandler Language="C#" Class="FileStream" %>
using System;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
/// <summary>
/// Reponsible for flushing out the file from the database to the user.
/// </summary>
public class FileStream : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
// get the file id
string fileId = context.Request.QueryString["file"];
using (SqlCommand command = new SqlCommand())
{
// get the file from database
command.Connection = new SqlConnection("connectionstring");
command.CommandText = "SELECT * FROM files where file_id = @FileId";
command.Parameters.AddWithValue("@FileId", fileId);
command.Connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
// flush out the binary data to the user
context.Response.Clear();
context.Response.ContentType = (string) reader["file_type"];
context.Response.AddHeader("Content-Disposition", String.Format("inline;filename={0};", reader["file_name"].ToString()));
context.Response.AddHeader("Content-Length", reader["file_size"].ToString());
context.Response.BinaryWrite((byte[]) reader["file_content"]);
context.Response.End();
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}Ezt mentsd le egy FileStream.ashx nevű fájlba. A lényege, hogy az url-ben megadod a fájlt id-jét például így: http://localhost/FileStream.ashx?file=4. Az adatbázisban persze a megfelelő adatoknak (file_name, file_size, file_type, file_content) benne kell lennie ehhez.
A feltöltésnél így tudod kiszedni ezeket az értékeket egy fuNewUpload nevű FileUpload controlból:
string filename = fuNewUpload.PostedFile.FileName.Substring(fuNewUpload.PostedFile.FileName.LastIndexOf('\\') + 1);
string filetype = fuNewUpload.PostedFile.ContentType;
int filesize = fuNewUpload.PostedFile.ContentLength;
byte[] filecontent = new byte[fuNewUpload.PostedFile.ContentLength];
fuNewUpload.PostedFile.InputStream.Read(filecontent, 0, fuNewUpload.PostedFile.ContentLength); -
ArchElf
addikt
válasz ArchElf #1087 üzenetére
Úgy nézem ennél kicsit bonyolultabb lesz... Valószínűleg szét kell választani a módosítókat a key-code-tól. Egyszerűbb is lenne rögtön az exportált user32 függvényeket használni, nem ezt a GlobalHotKey osztály.
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
rvn_10
senior tag
Hello! Valakinek nincs olyan programja, amely c# ban forgatható kockát rajzol? Nagyon megköszönném
Gigabyte B760M Gaming X, I5 13400, 2x16 DDR4 Corsair Vengeance 3600Mhz, NZTX Kraken X61, Sapphire Pulse RX 5600XT, EVGA Supernova G2 750W, Samsung 850 Evo 128Gb, WD Blue 1TB, Phanteks Enthoo Pro M Acrylic
-
ArchElf
addikt
private GlobalHotKey ghk = null;
private VoidEventHandler ghk_event = null;
private void textBB_KeyDown(object sender, KeyEventArgs e)
{
ghk = new GlobalHotKey(e.KeyData, false, false, false, false);
textBox1.Text = e.KeyData.ToString();
}
private void SetHotKey_Click(object sender, EventArgs e)
{
if (ghk_event != null)
ghk.Hotkey -= ghk_event;
ghk_event = new VoidEventHandler(Hotkey);
ghk.Hotkey += ghk_event;
}AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
bpx
őstag
én csak azt láttam, hogy az eventben, amit használtál nem lehet kideríteni, hogy melyik billentyűt nyomták le
hogy hogyan lehet char-ból virtuális key-t csinálni? az jó kérdés, ezt a részt nem ismerem annyira, lehet hogy van vmi pofonegyszerű megoldás .NET-ben, amiről nem tudok
lehet pl. olyat, hogy csinálsz egy asszociatív adatszerkezetet (Dictionary, HashTable, ami épp tetszik), amiben előre eltárolod a konstansokat, és a kapott char-ral címzed
-
bpx
őstag
ne a TextChanged event-et használd, hanem a KeyPress-t
annak van KeyPressEventArgs e argumentuma, ahol az e.KeyChar-ral megkapod hogy mi volt a lenyomott karakter (csak valós karakterekre működik, char típust ad vissza, neked kell belőle Key-t "varázsolni" - ha ctrl,alt,shift, stb vezérlőkarakterek is kellenek, akkor KeyDown/KeyUp eventek, és e.KeyData) -
Bumbi0
csendes tag
A segítségeteket szeretném kérni.
Egy Hotkey programot írok, de nem tudom, hogy hogy tudnám paraméternek a textbox-ból jövő karaktert, hogy az legyen a hotkey én nem amiét én előr beállítok. Jelen esetben az 'A'.
Előre is köszi asegítséget!private void textBB_TextChanged(object sender, EventArgs e)
{GlobalHotKey ghk = new GlobalHotKey(Win32.KeyCodes.VK_A, false, false, false, false);
ghk.Hotkey += new VoidEventHandler(Hotkey);
}Tehát a VK_A helyére a textBB-ből jövő karakter kódját változó formájában.
-
Lortech
addikt
válasz Relisys #1079 üzenetére
Az objektumra referenciát tartó változó(k)nak null értéket adsz és rábízod a GC-re, de korrekt válaszhoz tudni kéne pontosan, hogy milyen objektumról van szó, mi a működése, hogy van megvalósítva, milyen erőforrásokat fog( managed, unmanaged) van-e IDispose megvalósítása) ..
Thank you to god for making me an atheist
-
Relisys
senior tag
Hello!
Olyan kérdésem lenne hogy c#-ban hogy lehet utasítással megszüntetni objektumot? Próbáltam destruktort hívni de nem igazán jött össze.
-
Latency
senior tag
Üdv.
Egy kis magyarázat kellene, hogy hogyan tudnám használni egy típusos dataset select metódusát. Kerestem már a neten tutorialt hozzá, de valahogy nem egészen érthető ez nekem. Maga a feladat amúgy az lenne, hogy meg kellene nézni, hogy a táblázat egyik oszlopa tartalmazza-e már azt az értéket.
Remélem tud valaki segíteni.Előre is kösz.
-
Draker
csendes tag
Sziasztok!
Remélem jó helyre írok. Kéne egy kis segítség:
Adott egy comboBox, és a MouseEnter esemény segítségével már megoldottam, hogy egy textBox jöjjön létre. Ez szépen működik is, a létrejövő textBox koordinátáit beállítottam az egér jelenlegi koordinátáira (és természetesen el is tűnik a textBox, ha elviszem az egeret a comboBox-ról) - ez amolyan súgó szerű akarna lenni.Azonban a problémám az, hogy a létrejövő textBox nem a comboBox felett, hanem mögötte jelenik meg (ezért nem olvasható benne a szöveg), hogy tudom azt beállítani, hogy a létrejövő textBox minden felett látszódjon?
Gondolom a megoldás egy paraméter állítással megoldható, én már kipróbáltam mindent, és olvasgattam a fórumokon (angolon is persze), de sajna nem találtam megoldást.
Kezdő vagyok még és bocs, ha hülyeségeket is írok néha, de ez most nagyon fontos lenne.Előre is köszönöm, ha valaki tud nekem segíteni.
-
ArchElf
addikt
válasz Inv1sus #1071 üzenetére
Asszem a PHP (vagy PHP/MySql, vagy talán SQLite, vagy egyéb programozós?) topicban ezt kifejtettem... Használj paraméterezett feltöltést. (MSDN > SqlParameter)
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Inv1sus
addikt
válasz Inv1sus #1070 üzenetére
Elöző kérdésem nem fontos, de az új igen:
Hogy lehet azt megoldani, hogy egy adatbázisba elmentet képet (varbinary(MAX) típusban) kiolvashassak aspx-be?
A tanárom szerint egy olyan fapados megoldás kellene, hogy az image ugye src-be kapja a kép elérését. Na oda be kellene egy aspx-es fájlt tenni, ami a bináris képet tartalmazná és a content-type-ja kép lenne az egésznek. Valaki segítsen pls. Ettől függ az ötösöm*** WEBDESIGN, GRAFIKUS DESIGN, FRONT-END PROGRAMOZÁS ***
-
Inv1sus
addikt
Sziasztok!
Hogy lehet azt megcsinálni, hogy bejelentkezés után az oldalra, amire rádobott csak akkor jelenítse meg, ha tényleg be van lépve valaki. Szóval ne jelenítse meg, ha valaki csak simán megadja az elérési utat.
Azt hiszem ezt Sessionnal kell megoldani, de nem találtam anyagot a neten.*** WEBDESIGN, GRAFIKUS DESIGN, FRONT-END PROGRAMOZÁS ***
-
Gyuri16
senior tag
ez a resz nem jo:
s.Hizlal(25000);
for (int i = 0; i < 5; i++)
{
udvar.Add(s);
s.MalacSzam += 1;
}itt az s valtozod egy Sertes osztalyu objektumra mutat. amit csinal a ciklusod, hogy hozzaadja ugyanazt az egy malacot 5-szor, es minden lepesnel egyel noveli a szamat, ezert aztan az udvarodban 5-szor ugyanarra az objektumra mutato referenciaid lesznek.
ha kulonbozo malacokat akarsz hozzaadni akkor be kell szurni valahova a ciklusodba egy new-t, es igy egy uj Sertes objektum jon letre, ami fuggetlen a tobbitol:Sertes s;
for (int i = 0; i < 5; i++)
{
s=new Sertes();
s.Hizlal(25000);
s.MalacSzam=i+1; //egytol legyen szamozva
udvar.Add(s);
}ennek az eredmenye: az udvarban 5 db diszno lesz, 1..5 sorszamokkal, mindegyik 25000-re hizlalva.
mod:
"Ez ideig rendben van. A MalacSzam (ami sorszám lenne), és a Sulyt is (hízlal metóduson keresztül) mindegyiknél ugyanaz."
ez ugyanaz a hiba mint amit irtam, nem a MalacSzam es Suly ugyanaz, hanem a diszno ugyanaz, csak 5 helyen hivatkozol ra[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Lakers
tag
Sziasztok!
Kiírásnál estem gondolkodba, elkezdtem probálgatni.
Itt van néhány kódrészlet:abstract class Allat
{
private int suly;
public static int AdoAlap; // megosztott: minden egyes példány ugyanazt látja
public abstract void Hangoskodik();
public abstract double Ado { get; }
public int Suly
{
get { return this.suly; }
protected set { this.suly = value; }
}
public virtual void Hizlal(int deka)
{
Suly += deka;
if (this.Suly > 200)
Suly = 200;
}
} class Sertes:Allat {
public uint MalacSzam;
public override void Hangoskodik()
{
Console.WriteLine("röf-röf");
}
public override double Ado
{
get { return AdoAlap * 2 * Suly / 5000; }
}
public override void Hizlal(int deka)
{
Suly+=deka;
} }és még a főprogramban:
Sertes s = new Sertes();
s.MalacSzam = 4;
s.Hizlal(25000);
for (int i = 0; i < 5; i++)
{
udvar.Add(s);
}
...
Sertes disznocska = at as Sertes; //Ha at változóban Sertes példány volt
if (disznocska !=null)
{
Console.WriteLine("Súly: {0} Adó: {1} Malac Száma: {2}",
disznocska.Suly,
disznocska.Ado,
disznocska.MalacSzam);
}
...Ez ideig rendben van. A MalacSzam (ami sorszám lenne), és a Sulyt is (hízlal metóduson keresztül) mindegyiknél ugyanaz.
Viszont elkezdtem próbálgatni, és más kis rész feladatotak kitalálni rá:
s.Hizlal(25000);
for (int i = 0; i < 5; i++)
{
udvar.Add(s);
s.MalacSzam += 1;
}
Akkor a súlya 125000 lesz ez okés és. De a MalacSzam mindenütt 5 lesz... Ez miért következett be?
Mert én úgy akartam, hogy a MalacSzam mint sorszam, kiíratásnál 1,2,3,4 legyen.
Ezt hogyan lehet megvalósítani?
(lehet a C után az objektum orientált gondolkodásom még nem az igazi, vagy csak pusztán amatőr hibát vétek) -
Lakers
tag
Lenne egy kérdésem a Visual Studio 2008-al kapcsolatban.
Létrehoztam egy project fájlt, dolgozok benne, elmentem a program.cs-t és az osztaly.cs-t
Azt látom, hogy van külön mód, hogy a program.cs-t vagy az osztaly.cs-t más néven elmentsem, és így az eredetit ne írja felül.Project fájlnál is van erre lehetőség valahol a VS2008-ban? (vagy bármilyen más megoldás)
Mert én szeretném az egész project-et elmenteni úgy, hogy ne írja felül az előzőleg elmentettet... Mert nem akarok emiatt új projektet létrehozni és copy/pastelni.
-
Lakers
tag
válasz Lortech #1063 üzenetére
köszi, hogy megneztéd neked is -Zeratul-
igen, félre írtam, és köszönöm, hogy felhívtad a figyelmet a kis és nagy betűre, na meg hogy a property-re hivatkozik és hozzá a magyarázatot, ez hasznos volt
Megírtam újra a kódot, és így jó... nem értem, hogy az előbb miért panaszkodott...
-
Lortech
addikt
Ebben az esetben a fordító hogy a az abstract double Ado property nem származhat az Allat osztályból:
Feltételezem, azt akartad mondani, hogy a fordító azt mondja, hogy...
De nem ezt mondja, hanem azt, hogy a Tyuk osztályban meg kell adnod az Ado property implementációját, mivel az ősben abstract metódus.
Viszont a kód amit beszúrtál, nem erre utal, mert ahogy nézem ott van az implementáció, amire panaszkodik. Viszont a Baromfi.Hizlal metódusodban nem lesz jó ha suly változóra hivatkozol (így, kis kezdőbetűvel), mert az az ősének egy privát mezője, amit a Sertes osztályból nem tudsz elérni, viszont épp ezért van propertyd rá, a Suly.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lakers
tag
Sziasztok!
A kódom egy részletét látjátok lent. A kérdésem, az hogy a public Tyuk osztálynak az abstract Baromfi osztály az őse, de az abstract Baromfi osztálynak az abstract Allat osztály az őse.
Ebben az esetben a fordító hogy a az abstract double Ado property nem származhat az Allat osztályból:
Error 1 'proba.Tyuk' does not implement inherited abstract member 'proba.Allat.Ado.get'Mit rontottam el?
abstract class Allat
{
public static int AdoAlap;
private int suly;
public abstract void Hangoskodik();
public abstract double Ado {get;}
public int Suly
{
get { return this.suly; }
set { this.suly = value; }
}
}
class Sertes:Allat
{
public uint MalacSzam;
public override void Hangoskodik()
{
Console.WriteLine("röf-röf");
}
public override double Ado
{
get { return AdoAlap*2*Suly/5000; }
}
}
abstract class Baromfi:Allat
{
public int RepulesiMagassag;
public void Hizlal (int deka)
{
suly+=deka;
if (this.suly>200)
suly=200;
}
}
class Tyuk:Baromfi
{
public override void Hangoskodik()
{
Console.WriteLine("kot-kot");
}
public void Kapirgal()
{
Console.WriteLine("kapirgálok");
}
public override double Ado
{
get { return AdoAlap*2* Suly/1000; }
}
} -
bpx
őstag
válasz ArchElf #1060 üzenetére
a működés logikája az helyes, template nélkül működik rendesen
ez inkább szintaktikai kérdés
amit nem értek, hogy a ChannelListenernél a TChannel-re meg van adva hogy az egy class, IChannel, akkor ha paraméterként átadom a példányt, akkor miért kapok olyan hibaüzenetet, hogy a TChannelt nem tudja IChannelre konvertálni -
ArchElf
addikt
Szerintem azért nem működik, mert a this-el hívod meg, ami a jelen egyedre mutat, ami egy UdpChannelListener és ez nem implementálja az IChannel interface-t.
Olyan egyedre kell meghívni a LookUp metódust, ami implementálja az IChannel-t:
http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.ichannel.aspxAE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
bpx
őstag
adott az alábbi kód/osztályok:
abstract class UdpTransportManager
{
...
public static UdpTransportManager LookUp(UdpChannelListener<IChannel> channelListener)
{ ... }
....
}
public class UdpChannelListener<TChannel> : ChannelListenerBase<TChannel> where TChannel : class, IChannel
{
...
protected override void OnOpen(TimeSpan timeout)
{
...
UdpTransportManager transportManager = UdpTransportManager.LookUp(this);
...
}
...
}na most itt a LookUp hívásakor, nekem azt mondja, hogy a TChannel-t nem tudja IChannel-re konvertálni
ezzel most így mit lehet kezdeni/hol a hiba?explicit kasztolással nyilván lefordul, de úgy nem működik
[ Szerkesztve ]
-
ArchElf
addikt
Viszonylag gyakran akkor alkalmazzák, ha több opcionális kontruktor változóra lehet szükség - default konstruktor gyártására lehet alkalmani a this módisítót...
Érdemes megnézni az előre legyártott MS osztályokat, ott bőven van példa opcionális konstruktor változókra:
Pl System.IO.FileStream:public FileStream(IntPtr handle, FileAccess access);
public FileStream(IntPtr handle, FileAccess access, bool ownsHandle);
public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
public FileStream(SafeFileHandle handle, FileAccess access);
public FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync);
public FileStream(string path, FileMode mode);
public FileStream(string path, FileMode mode, FileAccess access);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, bool useAsync);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options);
public FileStream(string path, FileMode mode, FileSystemRights rights, FileShare share, int bufferSize, FileOptions options);
public FileStream(string path, FileMode mode, FileSystemRights rights, FileShare share, int bufferSize, FileOptions options, FileSecurity fileSecurity);(kicsit sorbarendeztem őket, hogy jobban látszódjanak a csoportok)
Ezeket mind meg lehet csinálni egyesével is, de sokkal egyszerűbb (és biztosabb megoldás) több különálló csoportra osztani, és a csoporton belül a speciálisabbakból (kevesebb változót tartalmazót) meghívni az általánosabbakat.AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
bpx
őstag
először meghívja a 2 paraméteres konstruktort (az ami a this mögött van), utána meg az eredetit amit a példányosításnál hívtál (1 paraméteres)
most így hirtelen nem tudok értelmes gyakorlati példát mondani, de pl. akkor érdemes használni, ha egy osztálynak több konstruktora is van, többféleképp is lehet példányosítani, és a konstruktorok egy bizonyos részig ugyanazt csinálják
ekkor érdemes kivenni ezt a közös részt külön, és ahelyett hogy többször kellene ugyanazt leírni, elég csak a : this-el hivatkozni ráde egyébként ez le sem fordul, mert a 10.0 az double
[ Szerkesztve ]
-
Lakers
tag
Sziasztok.
public C(int f): this(f,10.0) { ... } értelmezésével van gondom
class A
{
private int h;
protected double g;
public A() { ... }
public A(int x) { ... }
}
class B:A
{
protected string s;
public B() { ... }
public B(int a) { ... }
}
class C:B
{
public bool l;
public C(int f, int d) { ... }
public C(int f):this(f,10.0) { ... }
}Amelnyek a futása során ezeket a konstruktorokat hajtja végre.
1. class A -> A()
2. class B -> B()
3. class C -> C(30,10.0)
4. class C -> C(30)És én ezt olvastam, hogy: Ugyanahhoz az osztályhoz több, paraméterezésben különböző konstruktor is készülhet. Ekkor lehetőség van egyik konstruktorból valamely másik meghívására. A meghívásnak speciális szintaktikája van. A hívó konstruktor formális paraméterlistája mögé, a konstruktortörzs előtt kell egy kettőspont mögött feltüntetni.Amennyiben valamely másik saját osztálybeli konstruktort kell meghívni, akkor a használandó kulcsszó a this
Ekkor a this-nek nem azt kéne csinálnia, hogy meghívja a public C(int f, int d) { ... } konstruktort, mert végül is két paramétre van.
De én valamit félre értelmeztem, segítsetek korigálni, hogy akkor az a this.
Habár most ahogy kezdem visszaolvasni... A public C(int f): this(f,10.0) { ... } meghívja a public C(int f, int d) { ... } konstruktort amelyben már meg van a 30,10.0 érték, és onnan public C(int f): this(f,10.0) { ... } "lemásolja", az első értéket, az az a 30-ast?
Másik kérdésem, ezt gyakran alkalmazzák?
[ Szerkesztve ]
-
x007
tag
Majdnem
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Osszeg: {0}, Atlag: {1}", n*(n+1) / 2, (double)(n+1) / 2.0);
}De lehet pl így is:
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Osszeg: {0}, Atlag: {1}",
Enumerable.Range(1, n).Sum(),
Enumerable.Range(1, n).Select(v => (double)v).Average());
}
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Állásajánlatok
Cég: Axon Labs Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest