Пользователей: 0
Гостей: 628

» Подробно
Привет, гость!








Автор Сообщение
o_OKO
    
Посты: 383
Откуда: Москва
Возраст: 29
28-03-2010 19:45 GMT3 час. #1210104   
Vitek5 Спасибо. Так если всё основное можно сделать с помощью панели инструментов, для чего сами коды нужны?
По поводу текста. Насколько я понял, это инструмент Label. В общем, ради эксперимента скопировал туда статью. Вышла такая проблема, что статья выходит за границы окна. Пытался изменить размеры, но они остаются такими же. Как в блокноте, пока не нажмёшь enter, строка будет идти и идти вправо. Как решить проблему?


Множество людей верит в Бога, но не много таких, которым верит Бог. (с)

Michael Jackson 1958-2009 He live in our hearts forever...
Vitek5
    
Посты: 359
Откуда:
Возраст:
28-03-2010 19:47 GMT3 час. #1210107   
erlik Страницу пробовал обновить?Сайт работает даже на том самодельном браузере.Вот только что проверил всё работает.

добавлено спустя 6 минут

o_OKO Коды нужны для выполнения самой функции.Я выложил недавно ссылку на браузер который сделал.Там к кнопке поиск привязан код как и к любому другому элементу.Вывод: в программе код очень важен.
Я только сегодня начал изучать Microsoft Visual.Помоему Basic легче чем C#,но учить я буду и то и другое.C серьёзным подходом.

отредактировал(а) Vitek5: 28-03-2010 19:54 GMT3 час.

В журнал добавлены 2 полезные статьи.
o_OKO
    
Посты: 383
Откуда: Москва
Возраст: 29
28-03-2010 22:53 GMT3 час. #1210383   
Интересует, как сделать следующую вещь.
Я сделал фиксированное окно без возможности разворачивания, т.е. размеры окна никак изменить нельзя. Элементом Label я поместил внутрь большое количество текста (ну, по-людски говоря, статью). Эта статья занимает больше места, чем само окно. Как сделать полоску вертикальной прокрутки текста статьи?
(Всегда встречается подобная вещь в окне установки игр, в момент принятия лицензионного соглашения в окне много-много текста, который можно вниз прокручивать)


Множество людей верит в Бога, но не много таких, которым верит Бог. (с)

Michael Jackson 1958-2009 He live in our hearts forever...
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
29-03-2010 00:58 GMT3 час. #1210445   
o_OKO
Для вывода больших текстов используй другие компоненты - label это всего лишь текстовая метка - то есть допустим сделал ты компонент интерфейса и захотел его подписать сверху, чтобы понятно было что это - вот здесь метка и годится - а выравнивание текста она не поддерживает.
Для текстов используй TextBox, RichTexBox, ComboBox(скрытый бокс - разворачивается при нажатии - то есть можно его сделать в виде тонкой полоски - жмешь на нее - и появляется скрытый внутри текст - но это для специальных целей.) также TextBlock, Expander и т.д.
Они почти все (читай описание каждого) имеют встроенную полосу прокрутки - как вертикальную так и горизонтальную. И поддерживают выравнивание - свойство TextWrapping= "Wrap" , хотя RichTexBox автоматом выравнивает текст по границам бокса. Насчет TextBox не помню - автоматом или надо указывать свойство.
TextBlock сам не выравнивает - нужно указывать.

Правда оговорюсь - я пользуюсь компонентами из пространства имен Controls , а не Forms - они похожи и в них много чего одинакового, но есть и различия - тут кому что удобнее.
И например в проектах в WPF в которых я работаю в отличие от Forms нет панельки для перетаскивания - так что создавать компонент нужно вручную - это дает больше навыков чем когда ты просто перетаскиваешь компонент не создавая код.

Собственно полоса прокрутки есть и как отдельный элемент ScrollBar - но можно ли ее прикрутить в label не знаю - как то не пробовал.

Vitek5
У меня укозовские сайты вообще плохо грузятся.

отредактировал(а) erlik: 29-03-2010 01:11 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
30-03-2010 11:02 GMT3 час. #1211591   
Гы-гы! Надыбал интересную замену if-else в случаях присваивания значений:

Условный оператор (?:)

Данный оператор возвращает одно из двух значений, в зависимости от условия. При этом код, при его использовании значительно короче, чем при использовании if-else.
Например:
Имеем две переменные:

bool b = true;
int n;


Назначим переменной n значение, в зависимости от значения b:
Типа, если b = true, то n = 1, иначе n = 0;

n = b ? 1 : 0;

Данный код можно расширять до неограниченных размеров. Например, присвоим значение строковой переменной s, в зависимости от значения переменной типа int:

int n = 0;

string s = n == 0 ? "ноль" : n == 1 ? "адын" : n == 2 ? "два" : "дофига";


Данный код, в зависимости от значения переменной n, будет присваивать соответствующие значения переменной s:

Если n == 0, то s = "ноль";
Если n == 1, то s = "адын";
Если n == 2, то s = "два";
Иначе s = "дофига";

Прикольно. Может для когото это совершенно не новость, но для меня это просто отличная новость, упрощающая многие действия. Ещё много чего надыбал. Но это пожалуй пока самое интересное. Продолжаем изучение языка (не библиотеки Framework), а именно самого языка C#.

отредактировал(а) singapur22: 30-03-2010 11:22 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
01-04-2010 19:53 GMT3 час. #1214655   
singapur22
Оператор интересный - только мне пока привычнее if else использовать - не так абстрактно выглядит.
да и код куда читабельнее (хотя бы чисто для себя).

бесконечный цикл в Си шарпе
for (; ; )

цикл без тела

int i ;
int sum =0;
for(i = 1; i <= 5; sum +=i++);


Console.WriteLine("Сумма равна " + sum);

инструкция continue для принудительного перехода на новую итерацию
for(int i = 0; i <= 100; i++)
{
if((i%2) != 0) continue; // Переход на следующую итерацию.
Console.WriteLine(i);
}

при обнаружении нечетного числа происходит преждевременный переход к следующей итерации, а метод WriteLine () не вызывается.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Cos
    
Посты: 2690
Откуда:
Возраст:
01-04-2010 20:16 GMT3 час. #1214690   
singapur22

Надыбал интересную замену if-else в случаях присваивания значений

Ага, удобная в некоторых случаях штука, применял как-то в макросах на Ссях когда краткость выражения была важнее читабельности.


Продолжаем изучение языка (не библиотеки Framework), а именно самого языка C#.

Я за, если кто-то объяснит на пальцах и простых примерах работу абстрактных классов / интерфейсов / делегатов C# и их разницу между аналогами в C++ / Java. Давно нужно переходить на шарп, да все никак не хватает силы воли на многотомные мануалы. :-)


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
01-04-2010 21:11 GMT3 час. #1214765   
erlik

инструкция continue для принудительного перехода на новую итерацию

Тоже прикольно. Возьму на заметку.

Cos Ну, здесь с нас мало чего можно выудить. Сами на базовом уровне изучения. Но по возможности будем выкладывать все свои достижения.

В настоящий момент могу описать, как работать с делегатами. Делегат, это такой тип, который содержит в себе ссылку на статический метод. При этом ссылку можно изменять динамически. Тоесть, при определ**50016ea8aab1bb10eeba**

отредактировал(а) singapur22: 01-04-2010 22:05 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
01-04-2010 22:13 GMT3 час. #1214843   
А мне вот интересно - таким кодом я получается создал свой класс?**50016ea8aab1bb10eeba**s();
//myProcess.Autorun();
myProcess.ListProcesses();

}
}
}[/code]


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
01-04-2010 22:16 GMT3 час. #1214846   
erlik Обычный класс, без каких либо конкретных назначений.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Cos
    
Посты: 2690
Откуда:
Возраст:
01-04-2010 22:34 GMT3 час. #1214853   
singapur22
Ну в прицнипе как и предполагал - некое подобие указателя на функцию или метод.


Главное понять, чем конкретно занимаются делегаты.

Судя по-всему как я понял, применительно к .NET применяются они в основном для реализации событий, закрывая в себе всеми любимые callback-функции коими завален WinAPI. Впринципе логично, да. Нужно будет применить куда-нибудь...


инструкция continue для принудительного перехода на новую итерацию

Народ требует continue vs. break. Думаю из-за специфичности данных операторов рассматривать их можно и нужно вместе, как и if-else и for-while.


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
01-04-2010 22:37 GMT3 час. #1214855   
singapur22
То бишь чтобы это превратить в нормальный класс нужно сделать чтобы у него были методы и возвращаемые значения?
Надо будет попробовать наконец с ООП поработать - а то пока в этом мало что соображаю...

Просто тот способ я использую для тестирования функций - очень удобно когда нужно запустить только одну из десятка функций в файле.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
01-04-2010 22:45 GMT3 час. #1214862   
Cos

некое подобие указателя на функцию или метод.


В принципе да. НО! В C# существуют ещё анонимные методы, реализованные специально для делегатов.
Приведу пример. Создадим делегат:

public delegate void Del();

Далее, в любом из классов создаём объект делегата, с анонимным методом:

Del Delegat = delegate() { Console.Beep(); };

Где: { Console.Beep(); } --тело анонимного метода.
Через скобки delegate(), в тело анонимного метода можно передавать аргументы.

добавлено спустя 7 минут

erlik

То бишь чтобы это превратить в нормальный класс нужно сделать чтобы у него были методы и возвращаемые значения?


Не обязательно. Класс может вообще не содержать методов, а только определённые данные. А может иметь все типы конструкторов кода. Да и что ты подразумеваешь под нормальным классом?

отредактировал(а) singapur22: 01-04-2010 22:52 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Cos
    
Посты: 2690
Откуда:
Возраст:
01-04-2010 23:00 GMT3 час. #1214876   
erlik

я получается создал свой класс?

Теоретически да, но прежде всего нужно обратить внимание на практический аспект создания MyProcess, пока это:

способ я использую для тестирования функций

То есть будучи классом он все же неполноценен и является скорее надстройкой под Main, этаким дополнением. Не претендуя на лавры сотен написанных по этой теме книг, для меня ООП - прежде всего модульность и иерархия. Создавая класс представляющий уток, вполне логично если он будет зависеть от птиц, но не от класса зоопарка.


в нормальный класс нужно сделать чтобы у него были методы и возвращаемые значения?

Методы - естественно, возвращаемые значения - по желанию, все ведь зависит от предназначения создаваемого класса. Далее опять таки в зависимости от желаемого функционала нормой будет добавление конструктора/деструктора.


Надо будет попробовать наконец с ООП поработать - а то пока в этом мало что соображаю...

Черепаха ООП стоит на трех китах: инкапсуляция, наследование, полиморфизм. Естественно это предполагает некие базовые знания в манипуляции с классами, а в C# еще и аспектами связанными с самим .NET (ибо трудно представить что одно будет нужно без другого).

singapur22

В C# существуют ещё анонимные методы

Вот это сложнее для моего мозга)), несомненно это что-то чудовищно полезное но думаю мне понадобится некоторое время на осмысливание природы а главное предназначения этого чуда.

отредактировал(а) Cos: 01-04-2010 23:14 GMT3 час.

erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
02-04-2010 16:19 GMT3 час. #1215398   
singapur22

Да и что ты подразумеваешь под нормальным классом?

Я только имел ввиду класс который будет выполнять какое то индивидуальное предназначен


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Bertryger
    
Посты: 737
Откуда: Томск
Возраст: 33
02-04-2010 18:46 GMT3 час. #1215573   
Народ! Тут возникла у меня проблема,только не по шарпу а по с++...
Нужно считать из файла строку и поменять местами слова разделённые союзом "и".А потом записать то что получилось в выходной файл...
Примерно так: "А и б сидели на трубе." а в выходной файл:"Б и а сидели..."
В принципе ясно чего делать, а написать не могу.
1.считать строку, а из неё символы до и после "и".
2.Потом загнать их в массив и развернуть.
3.Вбить получившийся массив в строку и записать в выход.файл.
Но никак не воткнусь чего написать надо:-(


В раю лучше климат, в аду — компания.(Вальтер Скотт)
На пути к светлому будущему мешаются пробки из реалистичного настоящего.
Мечты похожи на радугу — только идиоты их преследуют!

Cos
    
Посты: 2690
Откуда:
Возраст:
02-04-2010 21:54 GMT3 час. #1215783   
Bertryger

В принципе ясно чего делать, а написать не могу.

Главное в таком случае понять почему "не могется", из-за недостатка знаний о базовых классах строк:

считать строку, а из неё символы до и после "и".

или работы с файлами:

и записать в выход.файл.

Либо же это простое не умение / не желание пользоваться справкой. Во втором случае все решается довольно быстро:

http://www.cppreference.com/wiki/string/start
http://msdn.microsoft.com/en-us/library/cscc687y%28VS.80%29.aspx

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


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
03-04-2010 13:06 GMT3 час. #1216127   
И снова, про нормальные (полноценные) классы. Ну что такое полноценный класс? Понимать это понятие можно по разному. По сути, даже простой класс производящий обычный вывод информации на экран можно причислить к полноценным классам. Так как он отвечает за конкретные(собственные) действия. Как и класс содержащий список конкретных данных, который содержит конкретную информацию на конкретную тему.
Но если поразмышлять и по анализировать хоть немного, можно прийти к выводу, что полноценных классов вообще не может быть. Другое дело, если речь идёт не про одиночный класс, а про некую классовую систему. Наиболее полноценные классовые системы строятся по принципу (базовый класс => дочерний (унаследованный) класс => ...). При этом базовый класс может быть как конструктивным, так и абстрактным. Во втором случае базовый класс не может содержать конструктора, так как является базовым классом только для унаследования (Cos --это будет ответом на твой вопрос про абстрактные классы). Думаю объяснять как производится унаследование не нужно. Если проанализировать Framework, то не сложно понять, что весь пакет состоит из унаследованных классов, где базовым классом основного списка унаследованных классов, является класс Object. Можно привести такой пример. Имеется список унаследавания классов по теме RayHit. Это тема отвечает за хит позиции на экране по отображаемым элементам находящихся под данной координатой. Приведём сам список:

System.Object
System.Windows.Media.HitTestResult
System.Windows.Media.Media3D.RayHitTestResult
System.Windows.Media.Media3D.RayMeshGeometry3DHitTestResult


Как видно из списка, базовым классом здесь является ранее упомянутый класс Object.
Каждый последующий класс в списке является дочерним классом предыдущего от него класса.
При этом каждый класс отвечает за собственные действия. Объединяет их только тема, за которую они отвечают.
Итак, приведём краткие описания классов:

System.Object -- базовый класс

System.Windows.Media.HitTestResult --класс отвечающий за хит в 2D Viewer (унаследован от System.Object)

System.Windows.Media.Media3D.RayHitTestResult --класс отвечающий за хит в 3D Viewer(унаследован от System.Windows.Media.HitTestResult)

System.Windows.Media.Media3D.RayMeshGeometry3DHitTestResult --класс отвечающий за хит в 3D отображении и возвращающий достаточно большой список данных хита, в плоть до всех данных ближайшего вертекса меши от точки хита. (унаследован от System.Windows.Media.Media3D.RayHitTestResult)

При всём этом, все эти классы являются пустым набором символов без классов от которых они наследуются. Тоесть хоть они и отвечают за конкретные решения, но без друг друга в сторону материнства они абсолютно бесполезны.

Вот вам и тема нормальных (полноценных) классов.

отредактировал(а) singapur22: 03-04-2010 13:18 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
03-04-2010 13:58 GMT3 час. #1216184   
Bertryger
Решение твоей проблемы.
Наверно не самое оптимальное но какое уж получилось. Запись в файл - твоя**50016ea8aab1bb10eeba**plit("А и Б сидели на трубе, шутили и смеялись, играли и пели");
Console.WriteLine(str);
Console.ReadKey();

}
}
} [/code]

singapur22
Конечно ты прав насчет классов - то что они могут быть очень разными. Тут никто не спорит.
Я так вообще пока молчу - так как в это особо не вдавался. Поэтому для меня нормальный класс это самописный класс, который имеет набор методов или свойств и возвращает значения, и цель его - упростить однотипные расчеты или действия.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
03-04-2010 14:10 GMT3 час. #1216192   
erlik Чтобы количество пробелов между словами не имело значения, в методе Split нужно указать соответствующий параметр:

string[] mass = str.Split(new char[] {' ', ','}, StringSplitOptions.RemoveEmptyEntries);

В данном случае пустые индексы будут игнорироваться.

Кстати, обрати внимание на то, как правильно указывается безымянный (анонимный) массив.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
03-04-2010 14:25 GMT3 час. #1216205   
singapur22
Точно. Я и забыл про эту опцию - вспоминал вспоминал как быть с множественными пробелами, да не вспомнил. Я эту опцию как то использовал - но только один раз - для того чтобы пустые строки в массив не писались.
насчет анонимного массива знаю - кстати в lua ведь тоже есть что то подобное - например анонимные (безымянные)функции.

добавлено спустя 2 минут

Кстати тут есть еще один недочет - знаки препинания исчезают. Что не гуд.

отредактировал(а) erlik: 03-04-2010 14:27 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Cos
    
Посты: 2690
Откуда:
Возраст:
03-04-2010 14:35 GMT3 час. #1216215   
singapur22

это будет ответом на твой вопрос про абстрактные классы

Концепция та же что и в C++, боюсь я только одного - при переносе некоторых "домашних" проектов на C# возникнут грабли в некоторых функциональных / синтаксических аспектах, в каждый из которых придется долго и нудно вникать. Слава богу их немного - по сути пока есть только один абстрактный (C++) класс отвечающий за некий порт передачи информации с ПК, который потом наследуется собственными классами для работы с COM / LPT / USB портами, последние оформляются в dll библиотеку и по необходимости стыкуются с главным приложением (этакие плагины). Удобно для соединения внешних устр-в с разными интерфейсами к одному приложению.


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
03-04-2010 14:38 GMT3 час. #1216217   
erlik Ну, в C# тоже есть анонимные методы (аналог функций в lua), я про них писал ранее. Только, если в lua, функция является типом переменной, то в C# метод является методом и ничего более. Единственный способ использования анонимных методов, это назначать их делегатам. Но, есть и один плюс в отличиях анонимных выражений от lua. Это лямбда-выражения. Лямбда-выражения, это анонимная функция, которая содержит выражения и операторы и может использоваться для создания делегатов или типов дерева выражений. Пожалуй они являются наиболее сложными конструкторскими решениями. В настоящий момент пытаюсь его изучить. Но даётся пониманию довольно тяжело.

добавлено спустя 6 минут

Cos Вот ссылка на мануал перехода на C#, для пользователей C++:

_http://msdn.microsoft.com/ru-ru/library/yyaad03b%28v=VS.90%29.aspx

Надеюсь она тебе поможет.

отредактировал(а) singapur22: 03-04-2010 14:53 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
05-04-2010 20:21 GMT3 час. #1218679   
singapur22
Как тебе такой код: (нужно по

отредактировал(а) erlik: 05-04-2010 23:14 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Cos
    
Посты: 2690
Откуда:
Возраст:
05-04-2010 23:01 GMT3 час. #1218903   
erlik

не похоже на Си шарп? Однако с версии 3.5 и в нем стали использоваться операторы запросов LINQ .

И вправду не сразу распознаешь, форменный SQL какой-то.

singapur22

_http://msdn.microsoft.com/ru-ru/library/yyaad03b%28v=VS.90%29.aspx
Надеюсь она тебе поможет.

Слона то я не приметил, спасибо, полезнейшая брошюрка.


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
06-04-2010 16:40 GMT3 час. #1219351   
Cos

И вправду не сразу распознаешь, форменный SQL какой-то.


Абсолютно в точку!!! Цитата из справки по Expression:


... Возможность использовать выражения как структуры данных включает для интерфейсов API получение кода пользователя в формате, который может быть проверен, преобразован и обработан особым образом. Например, реализация доступа к данным LINQ to SQL использует это средство для переводы деревьев выражения в инструкции Transact-SQL, которые могут быть оценены по базы данных. ...


Ещё какието (LINQ to ...) видел. А где, чёта не нашёл.

добавлено спустя 3 минут

erlik Я в курсе. Пришлось столкнуться при подробном изучении делегатов.

отредактировал(а) singapur22: 06-04-2010 16:46 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
06-04-2010 17:36 GMT3 час. #1219420   
singapur22
var удобная штука - можно тип переменной (особенно если это что то вроде IEnumerable ) не определять заранее. Компилятор сам сделает. Запись короче выходит.
Я сейчас весь синтаксис этого linq ковыряю. Для работы с базами данных - наверняка незаменимая вещь.

кстати про анонимные методы написано что это раритет времен 2.0 - а вот лямбда выражения рулят.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
06-04-2010 19:21 GMT3 час. #1219518   
erlik

кстати про анонимные методы написано что это раритет времен 2.0 - а вот лямбда выражения рулят.

Так то оно так. Только не нужно также забывать про одну особенность:


Анонимные методы позволяют отказаться от использования списка параметров, а это значит, что анонимный метод может быть преобразован в делегаты с различными подписями. Это невозможно в ситуации с лямбда-выражениями.


Возможно в будущем данный недостаток исправят, и от анонимных методов можно будет отказаться полностью. А может уже реализовали в Framework 4.0. Не знаю. Мануал по четвёртой версии ещё пишется, и большая часть компонентов находится пока без полного описания.

добавлено спустя 3 минут

Кстати. Интересная особенность у компонента Random. Выясняется, что рандом в Framework является классом, а не методом. Конечно данная особенность значительно расширяет его возможности. Но его использование становится немного туговатым. Както не привычно:-)

отредактировал(а) singapur22: 06-04-2010 19:26 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
07-04-2010 15:22 GMT3 час. #1220108   
erlik Кхм. Тут такое дело. При реализации идентификаторов объектов в своём проекте выяснилось достаточно много понятий из Сталкера. Например наше всеми любимое id объектов. Оказалось, что id это ничто иное, как индексы массива (я использовал класс List), в который заносятся объекты для дальнейшего их использования. В сущности оно и понятно. Так оно и предполагалось. Но! Пожалуй ни для кого не секрет, что при удалении одного из объектов из массива (из таблицы List в том числе) объекты находящиеся после удаляемого объекта смещаются к объектам находящимся перед удаляемым объектом. Соответственно, их индексы (id) меняются. Что не позволяет использовать длительное сохранение id во внешней переменной, для идентификации объектов. Это раз. Второе. XTreem на официальном форуме, мне както втирал, что id онлайн и оффлайн объектов могут различаться. В то время я это никак не мог понять. Оказалось, что онлайн и оффлайн объекты находятся в разных массивах, разных классов. Поэтому методы для них различны. И если объекты в оффлайн таблице сидят на всём протяжении существования объекта, то в онлайн таблице объекты периодически удаляются и загружаются по новой, что может привести к изменению их онлайн id. Именно по этому введён отдельный идентификатор sid, который имеет постоянное значение на всём протяжении существования объекта.
Вот както так.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
07-04-2010 16:13 GMT3 час. #1220181   
singapur22; erlik
У меня вопрос.

Сложный ли это язык для усвоения? Могу ли я его нормально изучать с образованием шестого с половиной класса?
Просто думаю, может не lua изучать а Си шарп, да тут и люди есть хорошие, помогут если что. ;-)

отредактировал(а) Сталкер Монолита: 07-04-2010 18:18 GMT3 час.

И все мы ждем чего-то. Работа - дом - работа ©


Форумы Специализированные » Hard & Soft Программирование на C# (C Sharp)


Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»