C# - Problemi i rješenja izdvojena tema

poruka: 2.151
|
čitano: 610.946
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
7 godina
neaktivan
offline
Re: C# - Problemi i rješenja

https://www.w3schools.com/cs/cs_data_types.php

 

ili za sizeof operator

 

Console.WriteLine(sizeof(float)); // 4

Console.WriteLine(sizeof(double)); // 8

 

Char nije 1 nego 2 byte jer C# koristi unicode.

 

Pokušaj sam skužiti što se događa kad double pokušaš ugurati u float.

https://www.youtube.com/channel/UCgos5WloYoxCvCeUIi47ZxQ
13 godina
offline
C# - Problemi i rješenja

-

Poruka je uređivana zadnji put pon 20.9.2021 20:58 (Hazar).
 
0 0 hvala 0
16 godina
offline
C# - Problemi i rješenja

Imam klasu koju popunjavam neki testnim podacima koji se ponavljaju.

 

class GetDoc

{

public Document docum1 = new Document
{
Title = "title 1",
Content = new List<IContent> {

new Section
{
Title = "title",
Size = ContentSize.Large,
Content = new List<IContent>
{
new HeaderValue
{
Header = "header",
Value = "yes",
Size = ContentSize.Large,
Orientation = Orientation.Horizontal,
IsDoubleSpace = false
},
new HeaderValue
{
Header = "header",
Value = "no",
Size = ContentSize.Large,
Orientation = Orientation.Horizontal,
IsDoubleSpace = false
},
new HeaderValue
{
Header = "header",
Value = "1111",
Size = ContentSize.Large,
Orientation = Orientation.Horizontal,
IsDoubleSpace = false
}
}
}
}
}

}

Ovaj boldani dio (Section) sa istim vrijednostima mi se kasnije ponavlja na nekoliko mjesta sa istim podacima.

Kako to mogu izbjeći?

 

sry na formatiranju, ne znam zašto tako napravi...

Dvije su stvari beskonačne - svemir i ljudska glupost. Za svemir nisam siguran - Einstein
Moj PC  
0 0 hvala 0
7 godina
neaktivan
offline
Re: C# - Problemi i rješenja

To ti je lagano,samo izvučeš tu klasu, nešto ovako

 

class GetDoc

{

public Document docum1 = new Document
{
Title = "title 1",
Content = new List<IContent> {


}

 

document = mynewClass.Section
}
}

 

class myNewClass{

public static Section =>  new Section
{
Title = "title",
Size = ContentSize.Large,
Content = new List<IContent>
{
new HeaderValue
{
Header = "header",
Value = "yes",
Size = ContentSize.Large,
Orientation = Orientation.Horizontal,
IsDoubleSpace = false
},
new HeaderValue
{
Header = "header",
Value = "no",
Size = ContentSize.Large,
Orientation = Orientation.Horizontal,
IsDoubleSpace = false
},
new HeaderValue
{
Header = "header",
Value = "1111",
Size = ContentSize.Large,
Orientation = Orientation.Horizontal,
IsDoubleSpace = false
}
}

 

}

 

 

 

}

https://www.youtube.com/channel/UCgos5WloYoxCvCeUIi47ZxQ
8 godina
neaktivan
offline
C# - Problemi i rješenja

Pozdrav,

 

trebao bih pomoć u vezi izrade baze podataka na SSMS-u (Sql server management systemu). Zanima me jesam li na dobroj temi u forumu i je li bi tko mogao pomoći ? Hvala na razumijevanju.

Carry on
 
0 0 hvala 0
8 godina
offline
8 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Hvala.
Carry on
8 godina
neaktivan
offline
C# - Problemi i rješenja

Pozdrav,

 

dobio sam jedan zadatak koji se odnosi na postavljanje testova u Visual studio 2019 nad već djelomično dobivenom programskom logikom. Trebam nadopisati još nekoliko programskih dijelova kako bi aplikacija uspješno radila.

 

Problem se pojavljuje u prikazanoj slici koja treba imati navedene klase.

Zanima me što bi sada značio ovaj dio povezanog entiteta prikazan na slici ?

 

Entitet:

 

Upravitelj Transakcijama

+ Upravitelj Transakcijama()
+ PrebaciSredstva(izvorIBAN: string, odredisteIBAN: string, iznos: double) : Transakcija [?] + OdobriMinus(izvorIBAN: string, odobreniMinus: double) : void

 

Hvala.

Carry on
 
0 0 hvala 0
15 godina
offline
Re: C# - Problemi i rješenja
Pa kolko ja vidim to su metode(funkcije), ak na to mislis?
8 godina
neaktivan
offline
Re: C# - Problemi i rješenja

A što znači Transakcija [?] s upitnikom unutar uglatih zagrada ?

 

Provodi se nasljeđivanje bez ikakvih parametara unutar  [?]. Jesam li u pravu ?

Carry on
8 godina
offline
Re: C# - Problemi i rješenja

Array (lista) transakcija? [] je array.

15 godina
offline
Re: C# - Problemi i rješenja
Dino-san kaže...

A što znači Transakcija [?] s upitnikom unutar uglatih zagrada ?

 

Provodi se nasljeđivanje bez ikakvih parametara unutar  [?]. Jesam li u pravu ?

 Po meni ta metoda ovak nekak izgleda

 

public Transakcija[] PrebaciSredstva(string izvorIBAN, string odredisteIBAN, double iznos)

 

ovaj upitnik bi mozda bio velicina polja, sam se to bas i ne koristi neg koristis listu da nebi moral znat velicinu. Kolko ja vidim ti nije nikakvo nasljevidanje nego return type metode, jedino je napisano na mutav nacin pa po sintaksi izgleda slicno inheretancu u c#

Poruka je uređivana zadnji put pet 13.5.2022 10:45 (R4zOR229).
7 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Ne nisi, česta prasksa za prikaz potpisa funkcije u pseudo kodu je npr. imeFunkcije(int par1, int par2): returnType.

Ovo Transakcija[?] ne znam što znaći, možda je trebalo biti Transakcija?[], ili neodređena duljina arraya ili znaći bilo kola vrta liste. npr Transakcija[], IList<Transakcija>, IEnumerable<Transakcija> , ili samo jedan transakcija ako je operacija izvršena ako nije vrača se null

https://www.youtube.com/channel/UCgos5WloYoxCvCeUIi47ZxQ
5 godina
neaktivan
offline
C# - Problemi i rješenja

Pozdrav!

 

Pokušavam shvatiti način na koji funkcionira Dependency Injection u .NET Core.

Dakle, imam jedan ASP.NET Core WebAPI projekt i imam Class Library projekt. CL projekt mi predstavlja DataAccess Layer gdje mi se nalazi EntityFrameworkCore veza s postojećom bazom podataka.

Također imam sučelje i klasu koja implementira to sučelje (IUserRepository, UserRepository).

 

Kod u Program.cs datoteci mi izgleda ovako:

builder.Services.AddDbContext<SocialNetworkContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("Database")));
builder.Services.AddScoped<IUserRepository, UserRepository>();

 

I sad, ja koristim taj context u UserRepository klasi:

private readonly SocialNetworkContext _socialNetworkContext;

public UserRepository(SocialNetworkContext context)
{
   _socialNetworkContext = context;
}

 

Nakon toga UserRepository klasu koristim u pripadajućem kontroleru:

private IUserRepository _userRepository;
public UsersController(IUserRepository userRepository)
{
  this._userRepository = userRepository;
}

 

I API funkcionira. Kako je to moguće?

Nisam nigdje instancirao ni DbContext klasu, niti UserRepository klasu. Nemam nigdje definiranu vezu između DbContext i UserRepository klasa, nisam nigdje injectao DbContext objekt u UserRepository klasu, no program i dalje funkcionira kao da objekt postoji.

Ne shvaćam baš ovaj koncept, proguglao sam već par objašnjenja za Dependency Injection no dosta mi je šturo objašnjeno.

 
0 0 hvala 0
15 godina
offline
C# - Problemi i rješenja

Pa definirao si u Program.cs da se injecta taj tvoj repository u svaki kontroler koji u konstruktoru ima taj tip klase kao parametar.

 

.net core ti sam instancira kontroler sa repozitorijem (ili logerom, business logic layer handlerom ili nečim šestim, ovisno što ti treba u tom kontroleru). Tako funkcionira DI u .net coreu.

 

Sad opet ovisi koji tip DI koristiš hoće li se tvoj repozitorij kreirati pri svakom requestu, pri svakoj konekciji ili samo prvi put kad je napravljen request: Tranzitni, Scoped ili Singleton

Rvat katolik!
 
1 0 hvala 1
5 godina
neaktivan
offline
Re: C# - Problemi i rješenja
tnakir kaže...

Pa definirao si u Program.cs da se injecta taj tvoj repository u svaki kontroler koji u konstruktoru ima taj tip klase kao parametar.

 

.net core ti sam instancira kontroler sa repozitorijem (ili logerom, business logic layer handlerom ili nečim šestim, ovisno što ti treba u tom kontroleru). Tako funkcionira DI u .net coreu.

 

Sad opet ovisi koji tip DI koristiš hoće li se tvoj repozitorij kreirati pri svakom requestu, pri svakoj konekciji ili samo prvi put kad je napravljen request: Tranzitni, Scoped ili Singleton

 Znači isto tako je ova linija koda zaslužna da se DbContext injecta u svaku klasu koja ga koristi?

builder.Services.AddDbContext<SocialNetworkContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("Database")));

 

Hvala na objašnjenju!

8 godina
offline
Re: C# - Problemi i rješenja

Ta je linija zadužena da se DI sustavu unutar .Neta "dojavi" da kod svakog instanciranja klase (repository) instancira DbContext. Samo instanciranje vrši DI sistem.

15 godina
offline
Re: C# - Problemi i rješenja
arnep kaže...
tnakir kaže...

Pa definirao si u Program.cs da se injecta taj tvoj repository u svaki kontroler koji u konstruktoru ima taj tip klase kao parametar.

 

.net core ti sam instancira kontroler sa repozitorijem (ili logerom, business logic layer handlerom ili nečim šestim, ovisno što ti treba u tom kontroleru). Tako funkcionira DI u .net coreu.

 

Sad opet ovisi koji tip DI koristiš hoće li se tvoj repozitorij kreirati pri svakom requestu, pri svakoj konekciji ili samo prvi put kad je napravljen request: Tranzitni, Scoped ili Singleton

 Znači isto tako je ova linija koda zaslužna da se DbContext injecta u svaku klasu koja ga koristi?

builder.Services.AddDbContext<SocialNetworkContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("Database")));

 

Hvala na objašnjenju!

Zapravo ti ta linija instancira sam DbContext i definira na koji će se DBMS spajati (SQL, mySQL, SQLite etc...) i kroz koji connString će se spajati na bazu (npr ovde možeš definirati da ti se u dev environmentu spaja na testnu bazu, a u produkcijskom na produkcijsku bazu).

 

DbContextu bi trebao pristupati isključivo kroz Repository. DI bi ti trebao instancirati repozitorij u svakom kontroleru koji ga ima u konstruktoru. 

Rvat katolik!
5 godina
neaktivan
offline
Re: C# - Problemi i rješenja
tnakir kaže...

Zapravo ti ta linija instancira sam DbContext i definira na koji će se DBMS spajati (SQL, mySQL, SQLite etc...) i kroz koji connString će se spajati na bazu (npr ovde možeš definirati da ti se u dev environmentu spaja na testnu bazu, a u produkcijskom na produkcijsku bazu).

 

DbContextu bi trebao pristupati isključivo kroz Repository. DI bi ti trebao instancirati repozitorij u svakom kontroleru koji ga ima u konstruktoru. 

 

Ne znači li to veliki udarac na performanse aplikacije?

Nas su na faksu učili da DbContext objekti uzimaju puno memorije pa je bolja opcija korisitit ih uz using blokove čime context objekt postoji samo unutar tog bloka koda. Sad vidim da se u praksi koriste uz DI pa mi je malo čudno.

8 godina
offline
Re: C# - Problemi i rješenja

DbContext je optimiziran da se brzo instancira, odradi što je potrebno (jedan unit of work, dakle jedan query ili jedan blok transakcija) i bude disposed. Ima neki sitni overhead kod instanciranja ali te profesore nitko nije obavijestio da je 1998. godina bila prije 25 godina i da server ima malo više od 128MB RAM.

5 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Nuclear_Phoenix kaže...

DbContext je optimiziran da se brzo instancira, odradi što je potrebno (jedan unit of work, dakle jedan query ili jedan blok transakcija) i bude disposed. Ima neki sitni overhead kod instanciranja ali te profesore nitko nije obavijestio da je 1998. godina bila prije 25 godina i da server ima malo više od 128MB RAM.

 Jasno. Hvala na objašnjenju!

Nova poruka
E-mail:
Lozinka:
 
vrh stranice