C#.NET

Крусер

Тотем Пума
Член од
4 јули 2008
Мислења
3.552
Поени од реакции
1.606
Кај C# мене ме фасцинира што можеш да напишеш string dva = 2.ToString(); и да ти работи како што треба. :smir:
 

back_rest

ex mod coder
Член од
19 јули 2006
Мислења
1.590
Поени од реакции
107
Кај C# мене ме фасцинира што можеш да напишеш string dva = 2.ToString(); и да ти работи како што треба. :smir:
Да. Во C# постои механизам за auto boxing. Имено секоја примитива може да ја третираш и како таква и како инстанца од wrapper класите задолжени за тоа, т.е. 2 може да биде и int и Integer.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Не не не...
Ако гледаме веќе према правите дефиниции на Објектно ориентираните програмски јазици, C++ ги имплементира сите идеи. Значи од идеите за повеќекратно наследување, класично наследување и изборен полиморфизам, C# нема појма. C# и Java се олеснети варијанти нa C++ во таа мера што голем дел од напредните механизми се исклучени. Java и C++ се пренесуваат преку референци, немаат механизми за преоптоварување на оператори и повеќекратно наследување. Принципот на полиморфизам овдека е задолжителен. Кај C++ полиморфизмот упаѓа на дело кога се работи со покажувачи кон основна класа, а ако се извади објект, истиот не важи. Кај Java и C#, ова не е случај.

Додека за мемориската зафатеност имаш многу фактори од кои што 50% се во твоја надлежност. Тоа дали ќе користиш поинтери или не ама ич нема врска. Туку напротив користењето на поинтери зафаќа и повеќе простор пошто не сега само што зафаќаш меморија за податокот, ами дополнително зафаќаш меморија и за покажувачот.
Она на што може да обрнеш внимание е: пооптимизиран алгоритам, со поголема ефикасност т.е. временска и мемориска - помала комплексност со помалку зафатнина на податоци. Затоа ите како реков дека познавањето на алгоритмите и оптимизираното програмирање е цела уметност.

Ако користиш C#.NET спремај се уште на старт да имаш зафатено поголем дел меморија поради кревањето на CLR интерпретерот во позадина. Не дека програмата зафаќа толку меморија, туку мора првин основата која што ќе ја движи целата програма да дојде во функција. Исто е и кај Java. Таму пред да се покрене апликацијата мора целосно да се покрене Java виртуелната машина која знае да зафати и поголеми делови од меморијата (>100MB).
Објаснувањево ти е супер, само сево ова да се изведе при градење на една апликација и на крај да се добијат посакуваните резултат не е баш лесно (зборувам за C#) :)

Значи како НЗС на моите прашања во кратки црти би било...
Разликата помеѓу C# и C++ е тоа што C# е „скратена“ верзија од C++ со „сервирани“ методи кои овозможуват доста брз и лесен начин на градење на една ООП апликација и претежно се користи за поедноставни ООП апликации, но во позадина тие „сервирани“ методи влијаат на оптоварувањето на самата програма што се одразува во искористеноста на меморијата...

НЗС за второто прашање би било тоа дека целиот штос за да апликацијата би била задоволена со помалце меморија се крие во менаџирањето на ресурсите и кодот и начинот на нивната употреба...

И како заклучок на сето ова е тоа дека C# со своите можности неможе да го стигне C++ особено не на полето „перформансите“ на апликацијата... ова баш и не ме радува :/
 

back_rest

ex mod coder
Член од
19 јули 2006
Мислења
1.590
Поени од реакции
107
И како заклучок на сето ова е тоа дека C# со своите можности неможе да го стигне C++ особено не на полето „перформансите“ на апликацијата... ова баш и не ме радува :/
Епа сага, секому колку му е „чергата“ :). C# се користи за комерцијални бизнис-ориентирани апликации. Да направиш игра во C# не е препорачливо а пак некоја програма за масовни пресметки (недај боже GRID) нема друго чаре освен C++.
Од друга страна пак, правиш обична десктоп апликација за интерна работа на некоја фирма која захтева изградба на веб интерферјс према надворешноста, C# ти е месаја!
 
Член од
14 јануари 2008
Мислења
1.341
Поени од реакции
162
Да. Во C# постои механизам за auto boxing. Имено секоја примитива може да ја третираш и како таква и како инстанца од wrapper класите задолжени за тоа, т.е. 2 може да биде и int и Integer.
Тоа нема type casting да му дојде во овој случај?
 

back_rest

ex mod coder
Член од
19 јули 2006
Мислења
1.590
Поени од реакции
107
Тоа нема type casting да му дојде во овој случај?
Не. Type casting работи за објекти. Ова е директна трансофрмација на примитива во објект и обратно.
Го има во Java од 1.6 или од порано некаде.
 
D

drle

Гостин
И како заклучок на сето ова е тоа дека C# со своите можности неможе да го стигне C++ особено не на полето „перформансите“ на апликацијата... ова баш и не ме радува :/
Во поглед на перформансите и трошењето на ресурси се знае дека С++ владее. Неговата предност е во тоа што може да се речи дека се наоѓа на најниското ниво кај проблемски оринтираните јазици (пониско од него е С, се смета дека тој можи да се разгледува како хибриден јазик, некој микс меѓу асемблер и проблемски оринтиран јазик), и со самото тоа што С++ е поблиску до основата го прави моќен, односно можи да навлези директно во менаџирањето на ресурсите, што од друга страна го прави комплексен и тежок за работа. Додека од друга страна С#.net се стреми кон највисокото ниво кај проблемските ориентирани јазици (т.е чисто визуелно програмирање) го прави шкрт во погледот на менаџирање на ресурсите, но е доста лесен за работа. Готовите работи кои што ги нуди С#.net не значи дека тие не се извршуваат при работата на програмата, па затоа и програма со две копчиња и три реда код троши повеќе меморија од 10000 такви програми изработени во С++ (каде патем има добро да се испотиш додека "пешки" да изпрограмираш). Но доколку со овај став му се обратиш на Microsoft, од таму ќе ти одговорат дека нивниот производ е квалитетен, а тоа што хардверските ресурси не можат да се носат со тој производ не е нивна вина, поради тоа што хардверот брзо се развива па имаш RAM на претек твое е само го купиш.
 

sveznajko

Random nobody
Член од
17 август 2006
Мислења
522
Поени од реакции
101
Да. Во C# постои механизам за auto boxing. Имено секоја примитива може да ја третираш и како таква и како инстанца од wrapper класите задолжени за тоа, т.е. 2 може да биде и int и Integer.
Even more , со новиот 3.5 .NET Framework (можда и од 3.0 , не сум сигурен) , моеш да користиш var како тип на променлива .
пример :
var anything;
// Code
// ...
anything = list.Sort();
или
anything = String.Replace('_',"");

Talk about cool stuff ...

Епа сага, секому колку му е „чергата“ :). C# се користи за комерцијални бизнис-ориентирани апликации. Да направиш игра во C# не е препорачливо а пак некоја програма за масовни пресметки (недај боже GRID) нема друго чаре освен C++.
Од друга страна пак, правиш обична десктоп апликација за интерна работа на некоја фирма која захтева изградба на веб интерферјс према надворешноста, C# ти е месаја!
Се сложувам .
Иако до одреден степен можеш да искористиш c++ код со
"[DllImport("<dll name>.dll")] " атрибутот.
Јас, конкретно, работев/ам на 2д игрица и windows forms рендерот ми беше спор , па искористив импорт на GDI BitBlt метод , што е функција од DLL напишан во C++ (мислам gdi32.dll , не ми текиња сеа)
 
Член од
24 август 2007
Мислења
761
Поени од реакции
15
Прашање за конуникација преку сериски порт (RS232).
Нема настан (event) готов кога доаѓаат податоци на портот. Како да проверува постојано. Зависи тоа од колку е BaudRate-от, па на толку време да го проверува портот . . .
Решение ?
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Прашање за конуникација преку сериски порт (RS232).
Нема настан (event) готов кога доаѓаат податоци на портот. Како да проверува постојано. Зависи тоа од колку е BaudRate-от, па на толку време да го проверува портот . . .
Решение ?
Ѕирни го ова (ако не си го видел до сеа)... ама не сум 100% сигурен дека е тоа што ти треба.
 
Член од
24 август 2007
Мислења
761
Поени од реакции
15
Го имам тоа го симнав, од кога го пишав постот :))
само не сум го разгледал уште има мн додека да стасам до тоа. ААААА семинарскава ќе ме пукне . . .

фала се надевам ќе средам работа
 

ZoraNaSlobodata

Чоечко суштество
Член од
5 ноември 2008
Мислења
2.736
Поени од реакции
111
Епа сага, секому колку му е „чергата“ :). C# се користи за комерцијални бизнис-ориентирани апликации. Да направиш игра во C# не е препорачливо а пак некоја програма за масовни пресметки (недај боже GRID) нема друго чаре освен C++.
Од друга страна пак, правиш обична десктоп апликација за интерна работа на некоја фирма која захтева изградба на веб интерферјс према надворешноста, C# ти е месаја!

Абе денешните игри(огромните проекти),це шарп(дот нет)не само шо не би било препорачливо,би било лудило!
 
Член од
4 декември 2008
Мислења
404
Поени од реакции
15
Ама ова е само за Visual C#/Studio 2005 :)
Да не знаеш дали има некое вакво слично чудо за Visual C#/Studio 2008 освен The Game Creators GDK ?
Од верзија 3.0 (најнова е 3.1) може да се користи со Visual Studio 2008

Поздрав
 

Kajgana Shop

На врв Bottom