Скобки

Язык C#: программирование на C#, портирование кода C# на VB и VB на C#.

Модератор: Ramzes

FVG
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 28.05.2006 (Вс) 6:41

Скобки

Сообщение FVG » 25.10.2006 (Ср) 19:38

Зачем иногда после круглых скобок ставят фигурные?
FVG

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 25.10.2006 (Ср) 19:56

:shock:
в Visual Basic
Код: Выделить всё

Public Sub SomeSub()

End Sub


а в C#
Код: Выделить всё
public SomeSub()
{

}

синтаксис у языка такой, учи матчасть

FVG
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 28.05.2006 (Вс) 6:41

Сообщение FVG » 25.10.2006 (Ср) 20:51

Имеется ввиду:
public Point() {} // и т. п.
FVG

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.10.2006 (Сб) 21:23

приведённый код синтаксически некорректен.
поэтому объяснять в нём нечего.
Изображение

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 30.10.2006 (Пн) 10:59

FVG
Привет.
В данном случае tyomitch прав на 153%.

Но что бы тебе было более понятно добавлю следующее:

public void Point() {здесь пишется код процедуры } - это процедура(метод)

public int Point() {здесь пишутся set и get} - это задается свойство для поля point, int здесь это тип, можно задать любой string, long ... .

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

И как верно подметил Ramzes учи синтаксис языка. :)

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 30.10.2006 (Пн) 12:01

Thomas писал(а):FVG

public int Point() {здесь пишутся set и get} - это задается свойство для поля point, int здесь это тип, можно задать любой string, long ... .


Thomas, ты ошибся. Если это свойство, то нельзя ставить круглые скобки. Компилятор как раз по ним и отвечает свойство от метода. Правильно так:

Код: Выделить всё
public int Point
{
   get {}
   set {}
}
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 30.10.2006 (Пн) 17:52

FVG
gaidar
Прошу прощения, мне стыдно :oops: , действительно я ошибся. (немного с VB переклинило)

public int Point() { .... return ... } так пишется функция.

А свойства пишутся без круглых скобок - (). gaidar прав на 153%. :)

FVG
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 28.05.2006 (Вс) 6:41

Сообщение FVG » 30.10.2006 (Пн) 18:40

...а если
public Point(){}// конструктор?
FVG

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 30.10.2006 (Пн) 19:13

FVG
В таком случае это возможно


Код: Выделить всё
public class Pointer
{
    public Pointer()
    {
     }
здесь пишем код для свойств и методов
}


Тогда, да это конструктор без параметров.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 30.10.2006 (Пн) 22:22

Да, кстати, раз уж речь зашла о конструкторах, то не забывайте, что деструкторы в C# вызываются не так, как например в C++, когда объект выходит из области видимости. Деструктор C# вызывается непосредственно перед работой сборщика мусора, очищающего динамически выделенную память.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 31.10.2006 (Вт) 16:35

gaidar писал(а):Да, кстати, раз уж речь зашла о конструкторах, то не забывайте, что деструкторы в C# вызываются не так, как например в C++, когда объект выходит из области видимости. Деструктор C# вызывается непосредственно перед работой сборщика мусора, очищающего динамически выделенную память.


Правильнее сказать Финализатор :wink:
именно этот виртуальный метод вызывается сборкой мусора.
//<-
Mit freundlichen Grüßen
//->

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 31.10.2006 (Вт) 17:02

В принципе, финализатор - это метод Finalize. Деструктор в C# - это синтаксическая обертка над Finalize.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

FVG
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 28.05.2006 (Вс) 6:41

Сообщение FVG » 01.11.2006 (Ср) 18:46

Легко сказать "...синтаксис", а где его искати то?
FVG

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 01.11.2006 (Ср) 19:15

FVG
MSDN


Вернуться в C#

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

    TopList