Ru-Board.club
← Вернуться в раздел «Тестирование»

» test

Автор: Oleg_de
Дата сообщения: 03.12.2002 16:09
tra ля-ля
Автор: ShemmyHome
Дата сообщения: 03.12.2002 22:57
улюлю =)
Автор: Gatis
Дата сообщения: 16.12.2002 08:43
tru лю лю
Автор: Sib_Hawk
Дата сообщения: 19.12.2002 05:17
а вообще то интересное правило убирать ники если в течение 30 дней нечего не постишь. лучше бы заходы считали
Автор: Sib_Hawk
Дата сообщения: 13.01.2003 08:54
опять 25
Автор: Sib_Hawk
Дата сообщения: 07.02.2003 04:35
oops i did it again (c)
Автор: MitRAMdiR
Дата сообщения: 07.02.2003 13:19
Проверка
Автор: xDeliC
Дата сообщения: 07.02.2003 20:09
До рэ ми фа сль ля си до
Автор: valuevv
Дата сообщения: 19.02.2003 11:48


Цитата:
До рэ ми фа сль ля си до

sfd
Автор: ken1
Дата сообщения: 22.02.2003 21:47
qwerty
Автор: worldhosting
Дата сообщения: 23.02.2003 02:04
просто тестик
Автор: raven
Дата сообщения: 23.02.2003 02:21
фигня
Автор: Sib_Hawk
Дата сообщения: 28.02.2003 10:36
:eye:
Автор: Sib_Hawk
Дата сообщения: 19.03.2003 06:21

:fie:




:roof:



Автор: HammerGood
Дата сообщения: 19.03.2003 11:54
another test

Добавлено
one more
Автор: igorvz2
Дата сообщения: 19.03.2003 19:25

Цитата:
Добавлено
one more


еуыенаываываываы

Test

Автор: Sib_Hawk
Дата сообщения: 18.04.2003 07:32

Цитата:
Test

gvfdg
Автор: DoktorZ
Дата сообщения: 19.04.2003 16:38
Автор: Katiusha
Дата сообщения: 20.04.2003 22:46
unix mozilla test
Автор: Ausw
Дата сообщения: 21.04.2003 07:55
#moderation mode чу! я слышу пушек гром!
Автор: golig
Дата сообщения: 21.04.2003 12:24
просто тест
Автор: ignath
Дата сообщения: 21.04.2003 21:51
а вот еще один тест
Автор: Sib_Hawk
Дата сообщения: 05.05.2003 07:50
зелёный текст?
Автор: Elroir
Дата сообщения: 05.05.2003 18:19
test
Автор: Sib_Hawk
Дата сообщения: 02.09.2003 05:47
Ausw
?
Автор: plut
Дата сообщения: 03.09.2003 01:52
ддд
ддд
mmm
Автор: IntenT
Дата сообщения: 03.09.2003 15:01
vfgvfgv

Добавлено
dcdfcdf
Автор: inche0n
Дата сообщения: 03.09.2003 16:12
DoktorZ
Автор: pite
Дата сообщения: 04.09.2003 01:42
http://www.ttdown.com/SoftDown.asp?ID=10073
http://ftp.ttdown.com:1234/S/Y/SysTrayX%20v3.51%20Retail.rar
http://www.0daycn.net/0daycn.asp?id=vNNGwswvvdHHoGOoNscOGYH&key=smdown
http://www.0daycn.net/0daycn.asp?id=vNNGwswvvdHHoGOoNscOGYH&key=scdown
http://www.0daycn.net/0daycn.asp?id=vNNGwswvvdHHoGOoNscOGYH&key=jtdown
http://www.0daycn.net/0daycn.asp?id=vNNGwswvvdHHoGOoNscOGYH&key=ltdown
http://scdown.0daycn.net:196/ssgsx351-2003-5-22.rar
http://ltdown.0daycn.net:81/ssgsx351-2003-5-22.rar
http://jtdown.0daycn.net:1998/ssgsx351-2003-5-22.rar
http://scdown.fixdown.net:196/down/keydown2003/ssgsx351-2003-5-22.rar
http://ltdown.fixdown.net:81/keydown2003/ssgsx351-2003-5-22.rar
http://scdown.0daycn.net:152/ssgsx351-2003-5-22.rar
http://ltdown.0daycn.net:89/ssgsx351-2003-5-22.rar
http://jtdown.0daycn.net:1998/ssgsx351-2003-5-22.rar
http://scdown.fixdown.net:152/down/keydown2003/ssgsx351-2003-5-22.rar
http://ltdown.fixdown.net:89/keydown2003/ssgsx351-2003-5-22.rar
http://lt.fixdown.com/fixdown/download1.asp?id=vNNGwswvvdHHoGOoNvcGvsf&soft=scdown
http://lt.fixdown.com/fixdown/download1.asp?id=vNNGwswvvdHHoGOoNvcGvsf&soft=ltdown
http://lt.fixdown.com/fixdown/download1.asp?id=vNNGwswvvdHHoGOoNvcGvsf&soft=smdown
Автор: dvs
Дата сообщения: 04.09.2003 11:44
b]Неформальное введение в объектно-ориентированное программирование на платформе .NET Framework[/b]

Продолжение. Начало в КГ №№ 13, 14, 16 .

Прежде чем мы начнем создавать базовые классы “сущностей”, задействованных в нашем алгоритме, нам предварительно необходимо разобраться с тем, какие возможности для этого нам предоставляет язык C#. Поэтому задвиньте пока на дальнюю полку мой пример с варкой кофе. В ближайшие несколько статей мы к нему не вернемся. Вместо этого мы с вами совершим небольшую экскурсию, осмотрев с высоты птичьего полета реализацию объектно-ориентированной парадигмы в языке C#. Пример же с варкой кофе нам снова понадобится по окончании этой обзорной экскурсии. К этому моменту мы с вами сможем, уже во всеоружии, решить поставленные его алгоритмом задачи.

Важное примечание! Прежде чем вы приступите к набивке текстов примеров из этой или последующих моих статей, учтите, что язык C# является регистрозависимым. Console.WriteLine и coNsoLe.wRiteLIne для него — совершенно разные команды. Набирая текст примеров, всегда обращайте внимание на правильность регистра в названиях классов и методов.

Рассказывая вам о классовой модели C#, я предполагаю, что вы уже знакомы с базовыми операторами C-образных языков. Если это не так, поищите где-нибудь книжку по этой теме. Если я сейчас начну вам подробно рассказывать о том, как работают операторы for(;;;){} или if(){}, я никогда не доберусь до конца этого цикла статей. В C# эти операторы описываются и функционируют точно так же, как и в других распространенных языках, за некоторыми исключениями и дополнениями.


Изменения в языке

Операторы цикла for, while и foreach


Операторы цикла for и while унаследованы от C-подобных языков без каких-либо заметных изменений. Вы можете использовать все те “выкрутасы”, к которым привыкли и в C, и в C++. Из нововведений появился новый оператор foreach(X in Y), пришедший в язык из Visual Basic. Он предназначен для перебора всех объектов в какой-либо коллекции (списке). Что такое “коллекция”, я пока не смогу вам объяснить, ведь мы с вами еще даже не изучили, что такое класс. Пока я вам лишь замечу, что коллекция — это набор из некоторого количества объектов одного или разных типов, и foreach перебирает их все по одному. Одним из примеров такого набора является обычный массив.


Оператор выбора if


В реализации if появилось одно весьма существенное нововведение. Код вида int x=0; if(x){}else{} больше не работает и приводит к ошибке времени компиляции. Для того чтобы все заработало, необходимо писать так: int x=0; if(x!=0){}else{}. Говоря другими словами, 0 теперь совсем не равняется false, а неравенство выражения нулю совсем не означает true. Компилятор отслеживает эту ошибку в тексте ваших программ и сразу на нее ругается.


Оператор выбора
switch


Логика работы оператора switch также подверглась модификации. В С# вам не удатся провалиться сквозь метки выбора в операторе switch{case:;}. Вполне приемлемый для C++ код:


int a =3;

switch (a){

case 1:

x=true;

case 2:

y=false;

break;

}


вызовет в C# ошибку, так как каждый case должен заканчиваться своим оператором break. Исключение сделано лишь для секций case, не имеющих тела. То есть код:


int a =3;

switch (a){

case 1:

case 2:

y=false;

break;

}


вполне допустим.

На самом деле C# по сравнению с C++ имеет еще довольно много нюансов. Мы с ними познакомимся по мере рассмотрения примеров в этом цикле статей.


Типы данных


Теперь давайте поговорим о типах данных. В номере 12 (25 марта 2003 г.) нашей газеты уже публиковалась статья, озаглавленная “Linux и C#. Типы данных”. Первоначально я хотел сослаться на нее, затрагивая эту тему. Но, внимательно изучив статью и ничего не поняв из прочитанного там, я решил своими словами изложить ту информацию, которую пытался донести до читателя ее автор.

Говоря о типах данных в C#, следует сразу учесть тот нюанс, что язык поддерживает параллельно два разных набора типов данных. Во-первых, это набор типов данных самой среды Net Framework, а во-вторых — набор синонимов этих типов, записанных в нотации, привычной программистам на C или С++.

Потребовалось это, по всей видимости, вот зачем. Как я и писал в первой статье цикла, Net Framework — это единая среда выполнения для большого количества языков программирования. На данный момент под нее написано уже с добрый десяток компиляторов разных языков. Все они используют типы данных, естественные для программистов на этом конкретном языке. Во время компиляции программы эти нативные для конкретного языка типы данных приводятся к типам Net Framework. Получается, что и овцы целы, и волки сыты. Программистам не нужно изучать новые типы данных, а среда Net Framework замечательно работает со всеми языками одновременно, не заморачиваясь поддержкой всевозможных языковых фенечек на манер типа данных Real, принятого в Pascal, или его аналога Real16, пришедшего ему на смену в Delphi.

Язык С# позволяет работать как с естественными для C++-программиста типами данных, так и напрямую с типами, объявленными в Net Framework. Вы наверняка спросите меня, а какой из двух наборов типов данных лучше использовать в ваших программах? Да какой хотите! Я сам использую обе разновидности вперемешку, тяготея при этом к использованию типов Net Framework. Мне так проще переключаться в коде между VB.Net и С#. Нативные типы данных у этих двух языков разные, а типы Net Framework присутствуют в обоих языках.

Ниже я приведу вам небольшую табличку типов данных C# c указанием соответствующего им типа данных Net Framework.


Тип С# Тип Net Framework Назначение



Byte System.Byte 8-битное значения без знака

short System.Int16 16-битное значение со знаком

int System.Int32 32-битное значение со знаком

long System.Int64 64-битное значение со знаком

char System.Char Один 16-битный символ Unicode

float System.Single 32-битное значение с плавающей запятой

double System.Double 64-битное значение с плавающей запятой

bool System.Boolean Значение True или False (истина или ложь)

decimal System.Decimal 128-битное число с плавающей точкой

string System.String Cтрока Unicode символов

object System.Object Базовый тип для любых типов


Примечание: На самом деле в этой таблице я упустил еще несколько типов данных. Сделал я это намеренно. Дело в том, что эти типы данных применимы лишь к программам, написанным на C#. Их следует по возможности избегать, так как они делают невозможным использование вашего кода программистами, скажем, на VB.Net. Мне не хотелось бы приучать вас в своих статьях к неправильному стилю программирования. Если вы захотите с ними разобраться, то самостоятельно найдите дополнительную литературу. А это моя статья: о чем хочу — о том и рассказываю. Замечу лишь, что к таким “неправильным” типам относятся sbyte, ushort, uint, ulong. То есть “знаковые” варианты типов данных без знака и “беззнаковые” аналоги типов данных со знаком. Особого смысла в их использовании я не вижу.

Вернемся к моей таблице. Если вы уже знакомы с каким-либо языком программирования, то понимание назначения перечисленных в ней типов данных не должно вызвать у вас каких-либо трудностей. Отдельного пояснения требуют, пожалуй, только последние три типа данных — decimal, string и object.


decimal
— это дробное число. Его следует использовать в тех случаях, когда для вас критична возможная потеря точности за счет ошибок округления. В Delphi имеется такой тип данных, как Currency. decimal — это еще более “точное” его подобие.


string
— это привычная всем программистам строка, обладающая, однако, одним неочевидным свойством. Дело в том, что переменную типа string невозможно изменить! Например, вот совершенно банальный пример кода:


string s =”” ;// объявляем пустую строку

s=”One” ;// присваиваем ей значение “One”

s+=” and Two”;// добавляем в хвост строке “ and Two”


Так вот, этот код сначала создает строку s c пустым значением, затем уничтожает ее и на ее месте создает строку c содержимым “One”. Затем снова ее уничтожает и на ее месте создает строку с содержимым “One and Two”! Почему так сделано, можно гадать очень долго, а вот незнание этого нюанса приводит к тому, что ваши программы по обработке строк очень долго выполняются и поедают много памяти.

Поэтому, если в вашей программе используется строка, которая очень часто модифицируется, задействуйте для ее обработки объект System.Text.StringBuilder. Он специально предназначен для операций с часто модифицирующейся строкой. Описание методов объекта System.Text.StringBuilder выходит за рамки этой статьи (их довольно много). Посмотрите самостоятельно их описание в MSDN или прилагаемой к Net Framework документации.

У нас остался, пожалуй, самый интересный тип данных — object. В таблице я написал, что этот тип данных является базовым для всех других типов данных. На самом деле так оно и есть. Все встроенные типы данных в C# на самом деле являются объектами. Даже когда вы используете константу в своем коде, она также будет являться объектом, производным от System.Object. Попробуйте из любопытства откомпилировать такой код:


using System;

class App{

static void Main(){

Console.WriteLine(2.ToString());

}

}


Эта программа благополучно откомпилируется и выполнится, несмотря на довольно странно выглядящий вызов функции 2.ToString(). Дело в том, что константа 2 в моем примере — это полноценный объект, обладающий набором методов. Один из них — Object.ToString() — мы с вами и вызвали. И тип данных int, и тип данных string, и все остальные встроенные типы данных восходят в конце концов к типу object. Более того: даже когда вы создаете свой собственный тип данных (класс), он все равно будет иметь в предках object, хотите вы этого или нет. object — это основа для любого типа данных, созданного в среде Net Framework. Каким образом происходит это наследование, вы поймете, когда мы с вами разберемся с тем, как создаются и наследуются классы в C#. Вот, блин, извечная проблема “Курицы и яйца”! Все зависит от всего, и очень трудно подступиться к описанию языка “с самого начала”. Все связано со всем, и неизвестно, с какой точки начать повествование, чтобы постоянно не забегать вперед.

Ну ладно, мы отвлеклись. Итак, класс в C# описывается с помощью следующей лексической конструкции:


class имя_класса


{



}

Страницы: 123

Предыдущая тема: Проверка кода вставки урла


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.