Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Первые впечатления.... / 16 сообщений из 16, страница 1 из 1
24.02.2004, 16:06
    #32419686
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
Первые впечатления противоречивые.

Вот работающий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
using System;

public class HelloWorld
{
 private String myCountry;

 public HelloWorld()
 {
  myCountry =  "Russia" ;
 }

 public String GetCountry
 {
  get
  {
   return myCountry;
  }
 }

 public void SetCountry(String p_country)
 {
   myCountry = p_country;
 }

 public static void Main()
 {
  HelloWorld hw = new HelloWorld( 0 );
  Console.WriteLine( "Hello World!!! My country is {0 }",hw.GetCountry);
  hw.SetCountry( "not USA" );
  Console.WriteLine( "My country is {0 }",hw.GetCountry);
 }
}


Код: plaintext
1.
2.
3.
F:\work\C#>HelloWorld.exe
Hello World!!! My country is Russia
My country is not USA


Программисты на Java сразу обратят внимание на странную игру с private полем myCountry. В C# нельзя вернуть значение обычным методом, для этого придумана конструкция :
Код: plaintext
1.
2.
3.
4.
get
{

}


В Java это бы выглядело так:
Код: plaintext
1.
2.
3.
4.
 public String GetCountry
 {
   return myCountry;
 }


Но в C# это вызывает ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
F:\work\C#>csc HelloWorld.cs
Microsoft (R) Visual C# .NET Compiler version  7 . 00 . 9466 
for Microsoft (R) .NET Framework version  1 . 0 . 3705 
Copyright (C) Microsoft Corporation  2001 . All rights reserved.

HelloWorld.cs( 22 , 4 ): error CS1014: A get or set accessor expected
HelloWorld.cs( 21 , 3 ): error CS1043: { or ; expected
HelloWorld.cs( 21 , 3 ): error CS1043: { or ; expected


Соответсвенно для присвоения значения данной private переменной предлагается использовать конструкцию:
Код: plaintext
1.
2.
3.
4.
set
{
 myCountry = value;
}


Тем не менее как видно из примера я это сделал не так, а так как я это сделал в Java:
Код: plaintext
1.
2.
3.
4.
 public void SetCountry(String p_country)
 {
   myCountry = p_country;
 }


Всё это наводит на мысли, а какого х.... нужно было выдумать тогда эти get {} set {}. Тем более очевиден минус подхода C# - я могу присвоить значение только то которое присваивается, а в методе Java я мог бы произвести еще дополнительную обработку по необходимости.

Никчему не привела попытка создать просто класс, а не консольное приложение.
Вот такой простой код не компилируется:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class HelloWorld
{
 private System.String myCountry;

 public HelloWorld()
 {
  myCountry =  "Russia" ;
 }
}


Код: plaintext
1.
error CS5001: Program 'HelloWorld.exe' does not have an entry point defined


Попробуйте мне обьяснить зачем классу точка входа?????
...
Рейтинг: 0 / 0
24.02.2004, 16:45
    #32419760
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
авторВ C# нельзя вернуть значение обычным методом
это почему это?

пишем public string Method() {return someString;}

авторНо в C# это вызывает ошибку:
ну так softbuilder@inbox.ru, вы блин в java написали в свойстве

Код: plaintext
return myCountry;


а с# должен сам догадываться что ему возвращать?
Код: plaintext
1.
2.
3.
get
{

}



авторВсё это наводит на мысли, а какого х.... нужно было выдумать тогда эти get {} set {}. Тем более очевиден минус подхода C# - я могу присвоить значение только то которое присваивается, а в методе Java я мог бы произвести еще дополнительную обработку по необходимости.


здесь можно произвести такую же обработку и совсем не обязательно писать в лоб

Код: plaintext
myCountry = value;


это только вариант для примера.


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

Что такое "просто класс"?
Берешь добавляешь Class Library и делаешь там сколько хочешь классов.
Если же вы вытерли просто в консольном приложении весь код и влепили класс, то в свойствах проекта все равно осталось Output Type - Console Application, если уж хочется так по-дикому извращаться (по-джавовски? ;) то поменяйте и там уж на Class Library. А то пытаемся скомпилировать консольное приложение и удивляемся - зачем же там точка входа?

Ну вы блин даёте :)
...
Рейтинг: 0 / 0
24.02.2004, 16:49
    #32419770
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
автор а какого х.... нужно было выдумать тогда эти get {} set {}.
вообще-то это не в C# впервые появилось. и потом свойства полностью соответствуют принципам ООП, а именно инкапсуляции, так что не стоит на них наезжать :)
...
Рейтинг: 0 / 0
24.02.2004, 16:57
    #32419788
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
да и вообще - не снаездов надо начинать, если не хочешь получит газават в ответ.
...
Рейтинг: 0 / 0
24.02.2004, 17:28
    #32419857
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
если уж очень хочется сравнить Java и C#, то вот здесь
http://dotnetgrains.sql.ru/arc/iss.htm
со второго номера по пятый есть об этом статья.
...
Рейтинг: 0 / 0
24.02.2004, 20:12
    #32420071
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
Разве изложение моих впечатлений нарушает какие-либо правила форума?

Я что-то не понимаю вашу реакцию - это что проявление жёсткой цензуры?
...
Рейтинг: 0 / 0
24.02.2004, 22:05
    #32420124
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
softbuilder@inbox.ru
А мне твой вопрос понравился. Хоть я и ни в Java не в C# не разбираюсь.
О введении какой цензуры можно говорить, когда народу совсем нет? Любому гостю должны быть рады.
...
Рейтинг: 0 / 0
25.02.2004, 08:48
    #32420261
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
авторв свойствах проекта все равно осталось Output Type - Console Application

В каких свойствах проекта? hDrummer, мне кажется ты понять меня всё не можешь - я не использую VS .NET. Я набираю текст в wordpade, далее:
Код: plaintext
1.
csc HelloWorld.cs


И всё. Нет никакого проекта.

В понимании Java если есть класс - то он самодостаточен. Для того что-бы создать экземпляр класса не нужно никаких точек входа. Точки входа нужны для программы.


Ну ладно, чего спорить если MS так написал. Как есть так есть. Я только высказываю своё мнение.
...
Рейтинг: 0 / 0
25.02.2004, 09:14
    #32420278
sharper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
Уважаемый!
для компилирования класса в сборку необходимо указать одну единственную опцию компилятора /target:library, который просто по умолчанию равен /target:exe . итого имеем csc /target:library myclass.cs
...
Рейтинг: 0 / 0
25.02.2004, 09:36
    #32420296
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
to sharper:


Супер!!! Спасибо, это мне как раз и нужно было понять.

Теперь получилось.


P.S. Намного лучше - когда народ конструктивно подходит к проблемам.
...
Рейтинг: 0 / 0
25.02.2004, 09:47
    #32420309
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
softbuilder@inbox.ruЯ что-то не понимаю вашу реакцию - это что проявление жёсткой цензуры?

Типичная реакция на воинствующее невежество - не хочу тебя обидеть, но твой выглядит именно как наезд (неграмотный) на C# со стороны пишущего на языке Java.

ОселО введении какой цензуры можно говорить, когда народу совсем нет? Любому гостю должны быть рады.
Где вы увидели цензуру, объясните мне пожалуйста?

softbuilder@inbox.ruhDrummer, мне кажется ты понять меня всё не можешь - я не использую VS .NET
А зря, хотя каким образом я должен был об этом догадаться? Я не телепат, а всё вышесказанное верно и для разработки проекта в VS.Net, которая уж всяко удобнее notepad'a или far'a в этом случае.

softbuilder@inbox.ruP.S. Намного лучше - когда народ конструктивно подходит к проблемам.
Вот и я о том же. Ведь это трудно назвать "конструктивным подходом" -
авторВсё это наводит на мысли, а какого х.... нужно было выдумать тогда эти get {} set {}.
и т.д. и т.п., или я не прав?
...
Рейтинг: 0 / 0
25.02.2004, 09:53
    #32420314
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
hDrummer , не хочу втягиваться в выяснение отношений да и времени нет.

А по поводу того что я использую можно было понять из вопроса:
авторНо в C# это вызывает ошибку:
F:\work\C#>csc HelloWorld.cs
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.0.3705
Copyright (C) Microsoft Corporation 2001. All rights reserved.

HelloWorld.cs(22,4): error CS1014: A get or set accessor expected
HelloWorld.cs(21,3): error CS1043: { or ; expected
HelloWorld.cs(21,3): error CS1043: { or ; expected


Да и в другом топике я про SDK спрашивал.

Вобщем такая вот простая логическая цепь.
...
Рейтинг: 0 / 0
25.02.2004, 09:59
    #32420323
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
2softbuilder@inbox.ru
Тут соглашусь, а в остальном - нет.
Ну да Бог с ним. Я не любитель holy wars, но и наездов не люблю.
Замнём для ясности?
...
Рейтинг: 0 / 0
25.02.2004, 10:24
    #32420359
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
softbuilder@inbox.ru

У вас в голове каша из 2х понятий
- методов класса (в том числе Get/Set - в C# они уже не нужны и для их замены есть)
- свойства
...
Рейтинг: 0 / 0
25.02.2004, 14:50
    #32420996
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
не из двух
...
Рейтинг: 0 / 0
27.02.2004, 10:52
    #32423801
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Первые впечатления....
авторнеобходимо указать одну единственную опцию компилятора /target:library

to sharper:

А есть ли возможность указать на это компилятору (типа директивы) в самом коде C#?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Первые впечатления.... / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]