>> это откуда?
>C#.
А в чем сакральный смысл?
c за пределами области действия, открывающейся после using, видна?
Или это паллиатив заместо работы над анбоксингом?
2Евгений >Неправильно. Безударная гласная тут ни причем. "Мудоёб" - сложное слово с двумя корнями "муд" и "ёб". О - гласная для связи корней. Примеры: пароход, самолет, дисковод, долбоеб и т.д. Ну и как водится - Слака рулез
Это что же получается ?
Слова "мудрец" и "мудак" имеют одинаковый корень (муд) ?
>Ну все - хана Гослингу! Как там говаривал Строустрап
Ладно, бог с ними большими именами.
Как человеку, не написавшему ни строчки на до-диезе, мне интереснее смысл вот этой жутко читаемой конструкции с using(выражение){}
Есть в ней смысл кроме того, чтобы облегчить жизнь компилятору и усложнить чтение программеру?
> облегчить жизнь компилятору и усложнить чтение программеру
А чего там такого сложного и нечитаемого? Вот полный пример:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
class MSSQLDemo
{
public static void Main()
{
using (SqlConnection c = new SqlConnection(
"data source=DOTNET;initial catalog=db1;user id=sa") )
{
c.Open();
SqlCommand s = new SqlCommand("SELECT * FROM t1", c);
SqlDataReader rs = s.ExecuteReader();
while(rs.Read())
{
Console.WriteLine(rs.GetInt32(0) + "\t" + rs.GetString(1));
}
rs.Close();
}
}
}
NikS
4Ikonta_521 (*) (2003-05-15 11:32:56.847):
>>Дам маячок - чтобы удалить программу, поставленную из исходников,
>>можно >запустить в своих исходниках ./configure с параметрами, а потом
>>make uninstall. В большинстве случаев это работает.
>Это работает не в большинстве случаев, а в тех случаях, когда в
>makefile прописана цель uninstall.
Это и ежу понятно. Естественно, что это я и имел ввиду.
4Mar: это-то как раз не помойка. Это грамотная структура - бинарники в одном каталоге, переменные во втором, библиотеки в третьем. Этого в виндах и не хватает - чтобы все было стандартно и лежало на своем месте.
Замечательный код! Удивительно лаконичный, и всего-то понадобились 3 временные переменные с запоминающимися именами. А разнесение Read и GetInt32/GetString просто восхищает! А явные Open/Close заставляют с ностальгией вспомнить MFC.
Да? А вот это будет работать?
using System;
namespace MyJoke
{
public struct A
{
public int x;
}
class MyClass
{
static void f(out A a)
{
a.x = 1;
}
static void Main(string[] args)
{
A a;
f(out a);
Console.WriteLine(a.x);
}
}
}
// Ну зачем мне еще какие-то там new и malloc ;-)))?
NikS
>А чего там такого сложного и нечитаемого? Вот полный пример:
Понятно.
Сложно и нечитаемо, потому что слово using перегружается слишком многими "смыслами". Оно одновременно теперь касается и области видимости, и времени жизни.
Кроме того, теперь "перегружается" и открывающая область видимости скобка.
Если уж им так хочется помочь компилятору, имхо логичней было бы модифицировать само объявление переменной. Навскидку что-то типа
{
automatic SqlConnection c = new SqlConnection(....
}
А вообще, "верной" дорогой идут товарищи.
Все идет к си++ -- при всех достоинствах:) -- перегруженному, многословному и со стандартом об полторы тыщи страниц на все случаи жизни.
>Да? А вот это будет работать?
>
>using System;
>
>namespace MyJoke
>....
Вообще, было бы логично, если б работало.
А что хотелось проиллюстрировать этим примером?
Что структуры размещаютс на стеке и через это всегда инициализируются? Или что-то еще?
Вообще, я фигею.
Глубокая сакральная разница между class и struct, имевшаяся в плюсах, в до-диезе видать еще глубже и сакральнее -- теперь она касается не только правил видимости, но еще и способа размещения.
Верная дорога, гм.
>Кстати, а С++ так могет? ;-)) :
C++ так могЕт с намного меньшим количеством слов
struct A {
int x;
};
struct MC {
static void f(A* VA) {VA->x = 1101};
};
int main(int argc, char* argv[])
{
A a; // здесь a.x должно быть 0
MC::f(&a);
}
>Не такой уж и большой документ, поданый в ECMA на официальную >стандартизацию.
Все еще впереди.
В этом языке и так слишком много сущностей. У него есть все шансы стать unmanageable
Где это _меньше_?
------------------------------
#include <iostream>
struct A
{
int x;
};
struct MC
{
static void f(A* VA)
{
VA->x = 1101;
}
};
int main(int argc, char* argv[])
{
A a;
MC::f(&a);
std::cout << a.x << std::endl;
}
--------------------------------------------
VS.
--------------------------------------------
public struct A
{
public int x;
}
class MyClass
{
unsafe static void f(A *a)
{
a->x = 1101;
}
unsafe static void Main()
{
A a;
f(&a);
System.Console.WriteLine(a.x);
}
}
----------------------------------------------
(Грамматику я в Вашем примере слегка подправил)
NikS.
Саныч, Вы мне реальный примерчик для моих DB2 или PostgreSQL - "съел и порядок"! Ну есть у меня лама-бук, но не пишу я на Перле, начальство не требует.
Никсу:
не передёргивай, да?? Я же ваши посты не перевираю, а вы скопом мои перевираете, ну и кто тут с флагом??
Прочитай ещё раз ту тему - я интересовался тем, какой язык перспективнее в плане развития (дабы обучаться), где и высказал сомнения по поводу С++, так как слышал много нехорошого о нём от тех, кто сейчас на нём программит. Там ещё такой флейм был на эту тему,и победили, между прочим, противники С++.
Поэтому, если ты разуешь глаза, то поймёшь, что спецом в языках я себя никогда не выставлял, иначе не стал бы спрашивать такое.
Да, кстати, нефиг спрашивать где Рут с Антиком. По моим подсчётам стрелка должна состоятся именно сегодня :) :(
Поэтому их на форуме не ждите, а лучше смотрите по ТВ московские криминальные новости :):)
Что значит "победили"? Есть класс задач, где важна производительность (C++), а есть класс задач, где важна надежность кода (C#). zOS вообще на ассемблере создан, но это не значит, что для него нет компилятора C++ или Java.
Вы бы хоть книгу "Символьный С++" почитали, что ли бы... ;-(
>Саныч, Вы мне реальный примерчик для моих DB2 или PostgreSQL - "съел и порядок"! Ну есть у меня лама-бук, но не пишу я на Перле, начальство не требует
Ну вот простенький примерчик
есть табличка x (id, x, y, z), пусть лежит она на DB2 в базе base
на хосте host
нужно вывести записи с 1000 <= id <= 2000 на stdout
#!/usr/bin/perl use strict; use Tie::DBI (); tie my %db, 'Tie::DBI', { db => "DB2:'base':'host':'user':'password'", table => 'x', key => 'id' } or die "Error ..."; for(1000..2000) print $db($_){'x'},$db($_){'y'},$db($_){'z'},"\n"; untie %db; exit 0;
>Около 700 ключеых слов. И это не мешает ему до сих пор быть языком Number One.
Просто так исторически сложилось.
То что есть примеры "успешных" монструозных языков, не значит, что нужно их и дальше клепать.
Главный принцип -- KISS
>Раз структурная переменная не является ссылкой, она не создает другого объекта, отдельно уничтожаемого в процессе уборки мусора. ...
Стало быть, структурные переменные являются не больше чем самыми обычными автоматическими переменными. Последние чаще всего размещаются на стеке.
Смысл то какой в приведенной вами цитате? Я об этом же.
Еще раз -- я так и не понял глубинного смысла вашего примера. Обоснуйте.
>> победили, между прочим, противники С++.
>Что значит "победили"?
Не доставай, иди и читай ту тему. там на конкретных примерах С++шников размазали.
читать твои книги не собираюсь, так как в том треде мне достаточно ясно ответили что С++ маздайный язык, посему не собираюсь такой сранью себе мозги забивать.
Зы:Могу показать кое кого, на чьи мозги С++ плохо подействовал:) да, ты угадал, это ты:) У тя с логикой совсем уж явно плохо, что вызывает у меня ещё большее отвращение к этому языку.
> Еще раз -- я так и не понял глубинного смысла вашего примера. Обоснуйте.
Удобство формы записи, даже при использовании неконтролируеиого кода. Взаимодействие с кодом, написанным на тех же КОБОЛе или ФОРТРАНе. Или том же forthcoming фукциональном F#. Я тут не спорю - я обсуждаю.
К сожалению код на С++ аналогичный С# конструкции
using (MyClass my = new MyClass(...)){...}
аналога пока я не получил для дальнейшего обсуждения и сравнительного анализа.
>читать твои книги не собираюсь, так как в том треде мне достаточно ясно >ответили что С++ маздайный язык, посему не собираюсь такой сранью себе >мозги забивать.
Книжек он не собирается читать, потому что ему "сказали". Мляяя.
А у тебя мозгОв-то хватит эту книжку осилить?
На форуме ему "сказали", что С++ -- маздай.
Сам ты причем, наверняка не написал на нем ни строчки.
Дедушка с папой-начальником-транспортного-цеха "сказали", как круты оборонщики и какие лохи "ученые". Не тем занимаются, Николя Тесла мля не чтут. И должны были пулю для винтовки отлить, чтобы тигер пробивала.
"Сказали".
А у самого-то у тебя голова на плечах есть?
Ламерье поганое -- ни ХРЕНА ведь не знаешь, а с понтом и пафосом лезешь нести безграмотный бред. И еще -- с ПОЗИЦИЕЙ.
Мля, самый ужасный вид ограниченности. Ограниченность НАМЕРЕННАЯ, осознанная. Как таких кретинов как ты земля носит?
Твое место -- в стойле. С шорами.