Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Java vs C#

Автор Karakurt, октября 8, 2010, 10:01

0 Пользователи и 1 гость просматривают эту тему.

myst

Цитата: RawonaM от декабря 24, 2010, 00:29
Вот, наделал там, а кто-то читает код и ниче не понимает, потому что куча операций имплицитно делаются. Следовательно, нельзя делать все что захочешь в функциях доступа.
Опять двадцать пять. То есть документацию не читаем, код не читаем, логику не понимаем, пишем сами чего не знаем?

myst

Цитата: RawonaM от декабря 23, 2010, 23:36
Например, есть приватный массив допустим string a[]. Мне нужна пропертя, которая выдаст по индексу n — a[n][0]. Как это легко сделать? Получается, что если в лоб, то надо выдавать целый массив первых караткеров из того массива.
Чё-то я спросонья не пойму, а в чём проблема?

using System;
class test1
{
public test1(int size){strings = new string[size];}
private string[] strings;
public string this[int i]
{
get{return strings[i];}
set{strings[i] = value;}
}
}

class test
{
public static void Main(string[] args)
{
test1 a = new test1(5);
a[1] = "hello";
Console.WriteLine(a[1][3]);
}
}

Тайльнемер

Цитата: myst от декабря 24, 2010, 09:20
Чё-то я спросонья не пойму, а в чём проблема?
Проснитесь и перечитайте Равонама.

myst

Проснулся, перечитал. Ему надо a.prop, которая будет вертать a.strings
  • , да?

Алексей Гринь

Цитата: Алексей Гринь от декабря 23, 2010, 23:51
вызов свойства это байткодина calli.
call

Цитата: Алексей Гринь от декабря 24, 2010, 00:21
Тем, что свойство public int Count { get; set; } может быть реализицией интерфейса

interface ICountable
{
    public int Count { get; set; }
}

Цитироватьinterface ICountable
{
    int Count { get; set; }
}

Всё-таки, думаю, именованные свойства в C# видимо не просто так не включили — видимо, не так часто используются, к тому же вспомогательными классами как-то гибче... А в //vb.net они есть только потому что (ЕМНИП) в VB6 были, вот и всё...

Всё-таки, мне кажется, получение первого чара строки n это не простое взятие свойства, а скорее функция.
肏! Τίς πέπορδε;

злой

Цитата: Алексей Гринь от декабря 23, 2010, 13:16
сумасшедший коммунист Столлман, который за всю жизнь осилил написать только программу-блокнот

Здравствуйте пожалуйста. GDB, конечно же, Алексей Гринь напейсал.
Entre los individuos, como entre las naciones, el respeto al derecho ajeno es la paz.   - Benito Juárez

Алексей Гринь

ЦитироватьПервоначально написан Ричардом Столлмэном в 1988 году. С 1990 до 1993 гг. поддерживался Джоном Джилмором, во время его работы в компании Cygnus Solutions.

Целых два года писал, дойдя до версии 0.0.01 alpha, которая умела аж написать имя лицензии, с которой написана и имя автора! Молодец! А Линус до сих пор лично отслеживает все добавления в ядро. В то время как Столлмян кляузничает и борется с мельницами.
肏! Τίς πέπορδε;

myst

Цитата: Алексей Гринь от декабря 25, 2010, 19:13
А Линус до сих пор лично отслеживает все добавления в ядро.
То есть сам тоже уже не пишет? :eat:

Алексей Гринь

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

Про Столлмана сложно что-то такое вспомнить. Он больше юрист и политик, чем программист.
肏! Τίς πέπορδε;

myst

Цитата: Алексей Гринь от декабря 25, 2010, 20:01
Пишет. Не помню как было давно, но успехом пользовалась новость, что он переписал кое-чё на си, и получилось быстрее, чем существующая оптимизированная версия на ассемблере.
Осенью он костыль на коленке слепил для программ, которые неправильно используют memcpy. У него звук из-за этого пердел или что-то в этом роде.

Алексей Гринь

Цитата: myst от декабря 25, 2010, 21:25
которые неправильно используют memcpy
Это ж как можно им неправильно пользоваться-то? Только если overlapped-память. Но ведь каждый ПТУшник знает, что нужно использовать memmove! Такие вот люди в опенсорсе.
肏! Τίς πέπορδε;

myst

Цитата: Алексей Гринь от декабря 25, 2010, 21:55
Это ж как можно им неправильно пользоваться-то? Только если overlapped-память. Но ведь каждый ПТУшник знает, что нужно использовать memmove! Такие вот люди в опенсорсе.
Ещё одно подтверждение того, что каждый ПТУшник знает недостаточная защита от ошибок. И это не последняя ягодка C, колоццо и колоццо предстоит долгие годы. Вирт был прав на 200%, все эти undefined behaviours добром не кончаются, доказано C. :) И не надо про бидлокодеров мне рассказывать. :negozhe:
Кстати, я точно уже не помню, но вроде у флэша такая же фигня, или даже именно в нём у Линуса звук и пердел. :)

Alone Coder

Много багов из-за путаницы signed/unsigned - довольно трудно без тайпкаста угадать, какого типа конкретный промежуточный результат. Если бы вместо "знаковых типов" были "знаковые операции" (что в реальности и происходит), было бы куда проще.

myst

Цитата: Alone Coder от декабря 26, 2010, 09:16
Много багов из-за путаницы signed/unsigned - довольно трудно без тайпкаста угадать, какого типа конкретный промежуточный результат.
О таком смешении предупреждает компилятор.

Alone Coder

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

myst

Входные данные программы вообще не дело компилятора. Пример не из того тазика.

Alone Coder

Получается, что мы при программировании мы пытаемся описывать знаковые/беззнаковые операции в терминах знаковых/безнаковых чисел, а потом компилятор делает обратную операцию. ЗАЧЕМ?

myst

Цитата: Alone Coder от декабря 26, 2010, 10:36
Получается, что мы при программировании мы пытаемся описывать знаковые/беззнаковые операции в терминах знаковых/безнаковых чисел, а потом компилятор делает обратную операцию. ЗАЧЕМ?
Какую обратную операцию он делает? :o

myst

Вирт, как известно, вообще радикально решил эту проблему: убрал беззнаковые целые как класс.

Alone Coder

В зависимости от типов операндов вставляет знаковые и беззнаковые операции.

Язык без беззнаковых целых - это нелепо. Как через них делать широкие типы? Как должны работать сдвиги и пр.?

myst

Цитата: Alone Coder от декабря 26, 2010, 10:42
В зависимости от типов операндов вставляет знаковые и беззнаковые операции.
И где здесь обратная операция?

Я не пойму, Вы предлагаете, отменить типизацию данных, что ли?

Цитата: Alone Coder от декабря 26, 2010, 10:42
Язык без беззнаковых целых - это нелепо.
Расскажите об этом Вирту.

Цитата: Alone Coder от декабря 26, 2010, 10:42
Как через них делать широкие типы?
Что это? Зачем оно нужно?

Цитата: Alone Coder от декабря 26, 2010, 10:42
Как должны работать сдвиги и пр.?
man Oberon

Alone Coder

Цитата: myst от декабря 26, 2010, 11:01
Я не пойму, Вы предлагаете, отменить типизацию данных, что ли?
Я предлагаю всего лишь указывать знаковость не в типе данных, а в самой операции.

RawonaM

Вот, решил тут было воспользоваться автопропертями. А у них, как оказалось, невозможно выставить начальное значение! Когда этот язык доведут до ума, диез этот?  >(

Алексей Гринь

Цитата: myst от декабря 26, 2010, 11:01
ЦитироватьЯзык без беззнаковых целых - это нелепо.
Расскажите об этом Вирту.
Это не тому ли, у которого из придуманных языков популярен только один, и то среди школьников? :) Ну да, школьникам беззнаковые не пригодятся.

У беззнаковых профит в том, что не нужно проверять нижнюю границу на выход за пределы диапазона...
肏! Τίς πέπορδε;

Алексей Гринь

Цитата: RawonaM от декабря 26, 2010, 12:42
Вот, решил тут было воспользоваться автопропертями. А у них, как оказалось, невозможно выставить начальное значение!
В конструкторе поставить религия мешает?
肏! Τίς πέπορδε;

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр