ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

C# 4.0
  #1  
Старый 27.10.2009, 23:40
Аватар для scrat
scrat
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме:
5812656

Репутация: 1540


Отправить сообщение для scrat с помощью ICQ
По умолчанию C# 4.0

Вообще на ачатике как-то слабо освещалась тема нового .net, считаю что стоит создать какой-нибудь такой пост где все будут дрочить на новый .net

Наиболее понятно всё показано на схеме:


Хотел немного рассказать про использование DLR в C# 4.0 тут, был бы рад если вы тоже присоединились и отпостили что-нибудь интересное по теме.


Проще всего описать всё это дело примером:
Код:
   static void Main(string[] args)
        {
            Console.WriteLine("Привет вам из C# 4.0!");

            var a = "hello ";
            var b = 2323;

            dynamic c = a + b;

            Console.WriteLine("Результат: {0}", c); //"hello 2323"
            Console.ReadLine();
        }
Клёво, да? Кроме крутых вычислений это очень сильно упрощает жизнь, когда используешь позднее связывание, и все объекты и их типы мешаются в кучу и в итоге всё имеет тип object

Последний раз редактировалось Rebz; 28.10.2009 в 18:25..
 
Ответить с цитированием

  #2  
Старый 28.10.2009, 02:04
Аватар для Algol
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме:
2050916

Репутация: 0


По умолчанию

Цитата:
Сообщение от scrat  
Клёво, да? Кроме крутых вычислений это очень сильно упрощает жизнь, когда используешь позднее связывание, и все объекты и их типы мешаются в кучу
И что клевого? Что все объекты мешаются в кучу?
Цитата:
Сообщение от scrat  
и в итоге всё имеет тип object
Ага, и все в итоге тормозит безбожно.
 
Ответить с цитированием

  #3  
Старый 28.10.2009, 02:10
Аватар для .ATK
.ATK
Участник форума
Регистрация: 20.02.2009
Сообщений: 224
Провел на форуме:
5075819

Репутация: 274
По умолчанию

Некому тут дрочить на нет 4
 
Ответить с цитированием

  #4  
Старый 28.10.2009, 07:00
Аватар для W!z@rD
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

>>Ага, и все в итоге тормозит безбожно.
имеешь в виду boxing/unboxing?
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #5  
Старый 28.10.2009, 18:22
Аватар для Algol
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме:
2050916

Репутация: 0


По умолчанию

Цитата:
Сообщение от W!z@rD  
>>Ага, и все в итоге тормозит безбожно.
имеешь в виду boxing/unboxing?
Во-первых боксинг, во-вторых динамическая типизация.

Не поленился, и протестировал пример который дал топикстартер:

Код:
 DateTime now = DateTime.Now;

            for (int i = 0; i < 1000000; i++)
            {
                var a = "hello ";
                var b = 2323;

                dynamic c = a + b;
            }

            Console.WriteLine(DateTime.Now - now);

            now = DateTime.Now;

            for (int i = 0; i < 1000000; i++)
            {
                string a = "hello ";
                string b = "2323";

                string c = a + b;
            }

            Console.WriteLine(DateTime.Now - now);
            Console.ReadLine();
Резлультат выполнения:
00:00:00.4687500
00:00:00.0937500

То есть статическая типизация работает почти в 5 раз быстрее чем динамическая ...
 
Ответить с цитированием

  #6  
Старый 28.10.2009, 19:48
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Algol, а ты оптимизацию не забыл отрубить? а то 00:00:00.0937500 - как-то совсем нереально смотрится
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #7  
Старый 28.10.2009, 23:13
Аватар для Algol
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме:
2050916

Репутация: 0


По умолчанию

Цитата:
Сообщение от desTiny  
Algol, а ты оптимизацию не забыл отрубить? а то 00:00:00.0937500 - как-то совсем нереально смотрится
Это без оптимизации.
И почему нереально? Одна десятая секунды это не так-то и мало.
 
Ответить с цитированием

  #8  
Старый 28.10.2009, 23:25
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

для миллиона объединений строк - вообще не очень )
Вот то же на сях с плюсами и без:
Код:
#include "windows.h"
#include "string.h"
#include <string>
#include <iostream>
using namespace std;
#define st __int64 rrtr = GetTickCount();
#define et rrtr=GetTickCount()-rrtr; \
	/*if(rrtr>1){ __asm{int 3};*/ cout << rrtr <<endl;//}

int main(){
	{	
		st
		    for (int i = 0; i < 1000000; i++)
            {
                string a = "hello ";
                string b = "2323";

                string c = a + b;
            }
		et
	}
	{
		st
		    
            for (int i = 0; i < 1000000; i++)
            {
                char a[] = "hello ";
                char b[] = "2323";
                int l1 = strlen(a), l2 = strlen(b);
                char *c = (char *)malloc(l1+l2+1);
                strcpy(c,a);
                strcat(c,b);
                free(c);
			}
		et
	}
	int a;
	cin >> a;
	return 0;
}
вывод:
1407
1344

(на чистых сях такой код получился в результате постепенного улучшения)
с оптимизацией так (видимо, там таки что-то повырезано):
453
922

но чтобы на .NET было во столько раз быстрее..
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #9  
Старый 29.10.2009, 04:20
Аватар для Algol
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме:
2050916

Репутация: 0


По умолчанию

Ну вот промежуточный код. Из него видно, что компилятор ничего не вырезает и чесно крутит цикл:

Код:
00000064  nop              
                string a = "hello ";
00000065  mov         eax,dword ptr ds:[022C3098h] 
0000006b  mov         dword ptr [ebp-4Ch],eax 
                string b = "2323";
0000006e  mov         eax,dword ptr ds:[022C309Ch] 
00000074  mov         dword ptr [ebp-50h],eax 

                string s = a + b;
00000077  mov         edx,dword ptr [ebp-50h] 
0000007a  mov         ecx,dword ptr [ebp-4Ch] 
0000007d  call        75CFC078 
00000082  mov         esi,eax 
00000084  mov         dword ptr [ebp-54h],esi 
            }
00000087  nop              
            for (int i = 0; i < 1000000; i++)
00000088  inc         dword ptr [ebp-48h] 
0000008b  cmp         dword ptr [ebp-48h],0F4240h 
00000092  setl        al   
00000095  movzx       eax,al 
00000098  mov         dword ptr [ebp-58h],eax 
0000009b  cmp         dword ptr [ebp-58h],0 
0000009f  jne         00000064
 
Ответить с цитированием

  #10  
Старый 29.10.2009, 19:54
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Код:
                string a = "hello ";
00000065  mov         eax,dword ptr ds:[022C3098h] 
0000006b  mov         dword ptr [ebp-4Ch],eax 
                string b = "2323";
0000006e  mov         eax,dword ptr ds:[022C309Ch] 
00000074  mov         dword ptr [ebp-50h],eax
^^ кхм если строки "выделяются" так, тогда может быть )
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Firefox 4.0 выйдет в конце 2010 г Vanterlog Мировые новости 19 10.09.2009 10:40
Symantec выпускает Mobile AntiVirus 4.0 ~!DoK_tOR!~ Мировые новости 0 11.02.2007 22:20
Вышел Nmap 4.0 Elekt Мировые новости 2 03.02.2006 02:50



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ