Új hozzászólás Aktív témák
-
nagyúr
Sziasztok! Milyen könyvet ajánlanátok C# tanulásra? Programozást nem a nulláról kezdem, 3 éve fejlesztgetek droidra (egyetem mellett), illetve még gimiben foglalkoztam picit C#-al is. Most elképzelhető, hogy át kéne állnom C#-ra, így minden tippet megköszönnék, honnan érdemes kezdeni, mit érdemes olvasni
[ Szerkesztve ]
-
nagyúr
Koszonom szepen, ez indulasnak jo lesz
-
nagyúr
válasz Flowtation #7333 üzenetére
Mondjuk nem igazan ertem, hogy suliban kezdokent miert nem console alkalmazasokkal tanuljatok az alapokat
-
nagyúr
válasz Flowtation #7339 üzenetére
Probald igy:
int x =
Int32.Parse(myTextBox.Text);Igy atkonvertalod a beolvasott stringet intte.
Azert azt irja ki hogy 12, mert ket string objektumot konkatenalsz a + jellel, nem pedig 2 szamot adsz ossze.
Illeszd be a program kodod egy reszletet, ugy konnyebben tudunk segiteni.
[ Szerkesztve ]
-
nagyúr
válasz Flowtation #7342 üzenetére
A label.text stringet var, konvertald az erdemeny intet stringge
-
nagyúr
válasz Flowtation #7354 üzenetére
Egy rovid pelda.
Van egy Fruit osztalyod, legyen benne egy static int x es egy int y.
class Fruit{
static int x = 0;
int y = 0;
}Ha peldanyositod az osztalyt es letrehozol belole mondjuk egy Alma es egy Korte objektumot, akkor a kovetkezo fog tortenni.
Az y letrejon az Almaban es a Korteben is, ket kulonbozo valtozo lesz, semmi kozuk nem lesz egymashoz.
Az x azonban, mivel static, osztalyszintu valtozo, ezert az nem jon letre kulon-kulon az Alma es Korte objektumoknal, abbol csak egyetlen egy darab van, amin az osszes Fruit osztalybol letrehozott objektum osztozkodik.
Tehat ha az Alma.x-et megvaltoztatod 0-rol 5-re, akkor utana ha lekerdezed a Korte.x-et 5-ot fogsz visszakapni eredmenyul.
Ez ugye az y-nal nem igy lesz, ott ha atirod az Alma y-jat 5-re, attol meg a Korte 0 marad.
Eleg pongyola megfogalmazas, de igy talan atjon mire valo
[ Szerkesztve ]
-
nagyúr
Rögtön egy kerdes az okosabbakhoz, jol emlékszem hogy a lokalis valtozok a stacken, a static valtozok viszont a heapen helyezkednek el?
-
nagyúr
Sziasztok! Adott egy tanulgatos projekt. WPF + Entity framework. Egy HR-szerű appot irok, amiben dolgozokat lehet felvenni az adatbazisunkba. Van egy rakat tabla, pl. a Dolgozo tabla kapcsolatban all a Fizetestipusok tablaval, Beosztasok tablaval stb. Ezeket meg tudtam oldani, az xaml-ben bindinggal. A kerdesem az lenne, hogy hogyan szokas mondjuk egy olyan kapcsolatot a felhasznalo ele tarni es megvalositani, amiben junction table van, azaz pl. Egy Dolgozo tartozhat tobb ceghez is, ekkor adott egy Dolgozok tabla, egy Cegek tabla es a kettot osszekoto DolgozokCegek junction tabla. A cegnel ahol vagyok, ott MVVM patternnel jatszunk. Ugy terveztem, hogy lesz egy legordulo lista es abban checkboxok. Hogyan tovabb?
-
nagyúr
Sziasztok!
Adott két lista. Különbségeket keresek (pontosabban azt, hogy van-e különbség). Az elemeit össze kell hasonlítanom bizonyos propertyk alapján, egyesével végighaladva a listák elemein. Fontos a sorrend, az A lista első elemét a B lista első elemével kell összehasonlítanom.
For ciklussal, if-ekkel tökéletesen működik, de meg szeretném írni rövidebben linq-val.
if ((Kiserocimkek.Where(a => EredetiKiserocimkek.Any(b => (a.EloirtDarab != b.EloirtDarab) || (a.Vonalkod != b.Vonalkod)))).ToList().Count > 0)
return true;Ezt írtam, de valamit benézek és a lista összes elemére teljesülnek a feltételek
[ Szerkesztve ]
-
nagyúr
Fontos volt az index, de felesleges volt az egesz, mert entity framworkos megoldassal gyakorlatilag egy sor volt az egesz. Kezdeti allapottal hasonlitgattam az objektumok aktualis allapotat, de a DataContext ChangeTracker objektumanak van egy HasChanges() metodusa, ami megoldja a problemamat
[ Szerkesztve ]
-
nagyúr
válasz Chesterfield #7483 üzenetére
Pl. WPF-nek miert ne lenne?
-
nagyúr
válasz Chesterfield #7497 üzenetére
Nalunk pl Entity Framwork, WPF, MVC, mssql ami megy főként.
-
nagyúr
válasz lord.lakli #7590 üzenetére
Köszi, nem is gondoltam hogy ez ilyen egyszerű, müxik
-
nagyúr
Sziasztok! Adott egy WPF projekt, elkészült, publisholtam telepíthető formára. Itthon 3 különböző gépen telepedik az app és működik hibátlanul. Amint fater beviszi pendriveon az appot a munkahelyére, a benti gépre ugyan feltelepedik, de el nem indul. Konkrétan nem történik semmi, nem fut a háttérben sem. Első körben vírusírtóra gondoltam, de miután leszedte az avastot ugyan ez a probléma áll fent. A benti gépekhez nem férek hozzá, mit lehet tenni?
[ Szerkesztve ]
-
nagyúr
A csempes megoldas nem jo, az nem latszik mindig. Uwp-t meg sose hasznaltam, de ha lesz egy kis idom megpróbálom atirni a wpf appot uwp-re. Koszi a tippeket
-
nagyúr
-
nagyúr
Sziasztok!
Adott az MNB webservice, amin keresztül az árfolyamokat szeretném lekérni. WPF appban simán ment, viszont UWP alkalmazásban valahogy async kéne ezt megoldani és sehogy sem jutok dűlőre vele. Hogyan kéne kijavítanom az alábbi függvényt, hogy jól működjön?
public static async Task<List<Model.Currency>> GetList()
{
List<Model.Currency> currList = new List<Model.Currency>();
MNBService.MNBArfolyamServiceSoapClient client = new MNBService.MNBArfolyamServiceSoapClient();
MNBService.GetCurrentExchangeRatesRequestBody eRatesRequestBody = new MNBService.GetCurrentExchangeRatesRequestBody();
MNBService.GetCurrentExchangeRatesResponseBody eRatesResponseBody = await client.GetCurrentExchangeRatesAsync(eRatesRequestBody);
string eratesResp = eRatesResponseBody.GetCurrentExchangeRatesResult;
XmlDocument eRatesDoc = new XmlDocument();
eRatesDoc.LoadXml(eratesResp);
XmlNode rootNode = eRatesDoc.FirstChild;
XmlNode dayNode = rootNode.FirstChild;
foreach (XmlNode x in dayNode.ChildNodes)
{
if (x.Attributes.Item(1).InnerText == "USD") currList.Add(new Model.Currency { Name = "USD", Value = int.Parse(x.InnerText) });
if (x.Attributes.Item(1).InnerText == "EUR") currList.Add(new Model.Currency { Name = "EUR", Value = int.Parse(x.InnerText) });
if (x.Attributes.Item(1).InnerText == "GBP") currList.Add(new Model.Currency { Name = "GBP", Value = int.Parse(x.InnerText) });
}
await client.CloseAsync();
return currList;
}[ Szerkesztve ]
-
nagyúr
Rendben, átírtam var-ra, így jobban olvasható.
Most így néz ki a két függvényem:
GetList()
public static async Task<List<Model.Currency>> GetList()
{
List<Model.Currency> currList = new List<Model.Currency>();
var client = new MNBService.MNBArfolyamServiceSoapClient();
var eRatesRequestBody = new MNBService.GetCurrentExchangeRatesRequestBody();
var eRatesResponseBody = await client.GetCurrentExchangeRatesAsync(eRatesRequestBody);
var result = eRatesResponseBody.GetCurrentExchangeRatesResponse1.GetCurrentExchangeRatesResult;
XmlDocument eRatesDoc = new XmlDocument();
eRatesDoc.LoadXml(result);
XmlNode rootNode = eRatesDoc.FirstChild;
XmlNode dayNode = rootNode.FirstChild;
foreach (XmlNode x in dayNode.ChildNodes)
{
if (x.Attributes.Item(1).InnerText == "USD") currList.Add(new Model.Currency { Name = "USD", Value = int.Parse(x.InnerText) });
if (x.Attributes.Item(1).InnerText == "EUR") currList.Add(new Model.Currency { Name = "EUR", Value = int.Parse(x.InnerText) });
if (x.Attributes.Item(1).InnerText == "GBP") currList.Add(new Model.Currency { Name = "GBP", Value = int.Parse(x.InnerText) });
}
await client.CloseAsync();
return currList;
}GetExchangeRates()
private void GetExchangeRates()
{
Task<List<Model.Currency>> task = Service.CurrencyService.GetList();
task.Wait();
var currencies = task.Result;
if(currencies != null)
{
foreach (Model.Currency curr in currencies)
{
if (curr.Name == "USD") this.Usd = curr.Value;
if (curr.Name == "EUR") this.Eur = curr.Value;
if (curr.Name == "GBP") this.Gbp = curr.Value;
}
}
}Ezzel így, konkrétan nem tölt be az alkalmazás.
Használok brakpointokat, a
task
-nál ezzel szembesülök:Result = "{Not yet computed}"
Értem, hogy nincs még meg az adat, csak ezt hogyan kezeljem?
És köszönöm mindenkinek a segítséget!
ui.: a Model.Currency Value értéke integer, nincs szükséges a tört részre
[ Szerkesztve ]
-
nagyúr
válasz harylmu #7677 üzenetére
Valóban kaptam exceptiont Átírtam Double-re most hipp-hopp, így már a GetList() visszaadja azt a listát amit kell, viszont a
GetExchangeRates()
-el még mindig nem jó valami, mert kék képernyővel kiakad az app. Ha atask.Wait()
-től kikommentezek mindent akkor elindul, csak úgy nem sok értelme van -
nagyúr
No, kicsit átalakítottam.
private async Task GetExchangeRates()
{
await Task.Run(() =>
{
Task<List<Model.Currency>> task = Service.CurrencyService.GetList();
task.Wait();
var currencies = task.Result;
if (currencies != null)
{
foreach (Model.Currency curr in currencies)
{
if (curr.Name == "USD") this.Usd = curr.Value;
if (curr.Name == "EUR") this.Eur = curr.Value;
if (curr.Name == "GBP") this.Gbp = curr.Value;
}
}
});
}Viszont amire nem számítottam, hogy összeakad itt a
RaisePropertyChange
-el:public double Usd
{
get { return usd; }
set
{
usd = value;
RaisePropertyChanged("Usd");
}
}Aszongya:
An exception of type 'System.Runtime.InteropServices.COMException' occurred in System.Runtime.WindowsRuntime.dll but was not handled in user codeAdditional information: Az alkalmazás olyan objektumfelületet hívott, amely egy másik szálhoz volt rendelve. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))
-
nagyúr
válasz harylmu #7682 üzenetére
Köszi a tippet, sikerült megoldani
public double Usd
{
get { return usd; }
set
{
CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
usd = value;
RaisePropertyChanged("Usd");
}
);
}
}Más kérdés, hogy az UWP app-al pont azt nem tudom megvalósítani, ami kéne, mégpedig hogy folyamatosan látszódjon a kis appom minden más felett a sarokban. Nincs
topmost
funkció mint a WPF-ben -
nagyúr
-
nagyúr
Sziasztok!
Adott egy ASP MVC alkalmazas, MSTest-eket irok hozza. A kerdesem az, hogy HttpSessionState-t objektumot hogyan tudok mockolni?
-
nagyúr
Ha van egy property nevem, akkor hogyan használhatom azt fel egy expressionben, az alábbi példában a
Username
helyett?@helper CreateFormGroup(string labelName, string propName, object htmlAttr)
{
<div class="form-group">
<label for="Password" class="control-label col-md-3">@labelName</label>
<div class="col-md-9">
@Html.EditorFor(m => m.Username, htmlAttr)
@Html.ValidationMessageFor(m => m.Username)
</div>
</div>
} -
nagyúr
válasz scarbantia #7862 üzenetére
Bemész a mappába ahol az exe található, shift+jobb klikk parancsablak nyitása itt (újabban powershell ablak nyitása itt), begépeled
IntelPWMCA_Console.exe 2000
, enter, örül[ Szerkesztve ]
Ú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!