Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 1.876 pregleda

Najnovija ↓

Jedna promenljiva a dva tipa. 27.12.2009. u 16:45 · pre 205 meseci #1
Evo ovako,
hteo bih da koristim jednu promenljivu (recimo conn) koja će u zavisnosti od izabranog tipa Sql Servera biti SqlConnection ili SqlCEConnection. Slično sam nekada u VB.NET rešavao tipovima Variant ili Object. U C# to mi ne prolazi. Evo jednostavnog dela koda:


Object conn=null;
if(serverType==enumServerType.DataBaseEngine)
{
conn = (SqlCeConnection)Activator.CreateInstance(typeof(SqlConnection));
}
if(serverType==enumServerType.SqlServerCompactEdition)
{
conn = (SqlCeConnection)Activator.CreateInstance(typeof(SqlCeConnection));

}
conn.ConnectionString = GetConnectionString();
.....
Poslednja naredna pravi problem. Krod prevođenja javlja: 'object' does not contain a definition for 'ConnectionString'.
Jasno mi je gde je i zašto greška ali ne znam kako da je rešim.

Re: Jedna promenljiva a dva tipa. 27.12.2009. u 16:58 · pre 205 meseci #2
deklarisi conn kao DbConnection jer je on parent oba objekta i eksponira ConnectionString koji koristis.

C# ne dozvoljava takav deklaracioni polimorfizam kroz late-binding (niti je taj kod optimalan), ako hoces polimorfizam moras da koristis ili nasledni polimorfizam ili da branchujes kod i koristis casting.

I btw, mislim da ti kod i inace ne valja jer castujes SqlConnection u SqlCeConnection sto nema sanse da prodje bez runtime greske.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Jedna promenljiva a dva tipa. 27.12.2009. u 17:16 · pre 205 meseci
izmenjeno 1 put, poslednji put darmar_pr 27.12.2009. u 17:31
  1. darmar_pr27.12.2009. u 17:31zapis iz teksta poruke
#3
Citat:
mmix: 
I btw, mislim da ti kod i inace ne valja jer castujes SqlConnection u SqlCeConnection sto nema sanse da prodje bez runtime greske.


Ma to sam ja pogresio kod Copy/Paste.
I hvala na odgovoru.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme