Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: Работа со временем Добавлено: 24.07.08 23:19  

Автор вопроса:  jackoff

Ответить

  Ответы Всего ответов: 50  

Номер ответа: 16
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #16 Добавлено: 26.07.08 01:08
я уже привык объявлять по "стандарту"...

Паша, если бы ты делал "по стандарту", то у тебя в коде не было бы тупизмов типа p_Value и тому подобных. Иди почитай какие стандарты именования переменных используются в .NET

Что касается стандартов - спецификация VB .NET 9.0 предусматривает возможными оба способа объявления, как с явным указанием типа переменных, так и с неявным (в случае когда компилятор может его определить исходя из того, каким значением инициализируется переменная).

Поясняю:
Допустимо (при включенной опции Option Infer On - по умолчанию включена):
Dim S2 = "Hello"
Dim MyList = New List(Of String)
For i = 0 to 100
Next
Using S = New SqlConnection("...";)
End Using


Вот в этом случае возможна только неявная типизация
Dim MyObj = New With {.Name = "Brand", .Age = 21}


Нельзя (ошибка компиляции при включенной опции Option Strict On - по умолчанию отключена):
Dim S


Паша, будешь спорить?

Ответить

Номер ответа: 17
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #17
Добавлено: 26.07.08 03:16
Паша, если бы ты делал "по стандарту", то у тебя в коде не было бы тупизмов типа p_Value и тому подобных.

ссылочку можно? хотя мне и так удобно... да и вобще это дело вкуса... кто как хочет так и сокращает... юзеру по*** =)

Паша, будешь спорить?

а я разве спорил? у вас помоему мания того что все против вас =)
1)
создавай отдельную тему типа "как правильно объявить переменную" если хочешь это обсудить...

2)
главное чтоб студия поняла что ты от нее хочешь =) а все остальное это лишь формальность...


Все ЭТА тема ЗАКРЫТА!

Ответить

Номер ответа: 18
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #18 Добавлено: 26.07.08 08:06

ООООО, вижу назревает межнациональный конфликт :)

И чем же этот код некорретен? Чем напрягает? Поделитесь уж своими соображениями.


Когда это твой собственный код на десяток строк - это фигня.. Но когда читаешь чужой код в таком виде - вот это напрягает! Мало того, что надо вникнуть в суть чужого кода, понять смысл выполняемых им действий, так еще надо постоянно держать в голове что это за переменная и какого она типа! Другими словами читабельность подобного кода - нулевая. Чтобы понять что за тип у переменной надо анализировать ее значение... ужоснах!!
А в таком варианте например
Dim myVar = getMyFunk(param)
Надо будет добраться до этой функции и посмотреть какой тип возвращает она! А это все лишнее время и телодвижения.. Вообщем я для себя уже давно сделал вывод - ф топку подобный способ объявления! Себе же потом дороже будет..

Ответить

Номер ответа: 19
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #19
Добавлено: 26.07.08 10:44
Надо будет добраться до этой функции и посмотреть какой тип
возвращает она

Достаточно лишь навести курсор мыши на имя переменной.

Ответить

Номер ответа: 20
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #20
Добавлено: 26.07.08 10:59
Steel Brand, дай, пожалуйста, спецификацию по оформлению кода, очень интересно почитать.

Ответить

Номер ответа: 21
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #21 Добавлено: 26.07.08 11:33
Достаточно лишь навести курсор мыши на имя переменной.

И это, по твоему, нормально? Я, когда пишу код, мышкой вообще не пользуюсь.. и что, мне теперь, наводить на каждую переменную мышку??? Увольте...

Ответить

Номер ответа: 22
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #22
Добавлено: 26.07.08 11:54
Странно.. Я активно мышой пользуюсь.
А команды рефакторинга тоже с клавы вызываешь?

По теме: согласен, что отсутствие типа при объявлении делает код менее читабельным.

Ответить

Номер ответа: 23
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #23 Добавлено: 26.07.08 18:47
ссылочку можно?

Да, конечно, все для тебя :) Радует что человек стремится к знаниям :)
http://vbnet.ru/articles/showarticle.aspx?id=116

хотя мне и так удобно...

Тут речь идет не об удобстве.
Мне удобно, например, читать гигабайтовые файлы через System.IO.ReadAllBytes (), но это не значит что так нужно делать.

да и вобще это дело вкуса... кто как хочет так и сокращает...

Если бы так было - кто как хочет, так и сокращает, то у нас бы не было ни одной работающей программы.

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

    Private Function Q(ByVal S As HttpApplication) As Boolean
        Dim a = S.Request.Headers("Authorization";)
        If String.IsNullOrEmpty(a) Then Return False

        a = a.Trim
        If Not a.ToLower.StartsWith("basic ";) Then Return False

        Dim B = Convert.FromBase64String(a.Substring(6))
        Dim C = S.Request.ContentEncoding.GetString(B)

        Dim d = C.Split(New Char() {":"c}, 2)
        If d.Count < 2 Then Return False

        Dim e = d(0)
        Dim f = d(1)

        Dim g = Engine.Users(e)
        If g Is Nothing OrElse g.Locked Then Return False

        Dim i = Cryptography.ComputeHashToBase64String(e.ToLower + f, Cryptography.HashAlgorithmEnum.SHA512)

        If i <> g.Password Then
            Return False
        End If
        S.Context.User = New GenericPrincipal(New GenericIdentity(g.Name), g.Roles)
        Return True
    End Function


Заметь - названия переменные которкие, следовательно:
1) Проще и быстрее набирать
2) Прозще запомнить.



юзеру по*** =)

Юзеру совсем не по***, если из-за использования неверной нотации один разработчик не понял что имел в виду другой и сделал продукт с багом

Все ЭТА тема ЗАКРЫТА!

Паша, по-моему это не тебе решать :)

Ответить

Номер ответа: 24
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #24 Добавлено: 26.07.08 19:05
Когда это твой собственный код на десяток строк - это фигня..

EROS, 10 строк кода - консольное приложение для проверки того как работате тот или иной класс, и там я использую обычные переменные A B C D и т.п.

Но когда читаешь чужой код в таком виде - вот это напрягает!

Чем напрягает? :)
Гораздо больше напрягает когда указаны типы но при этом не ясно что делает код, а в этом случае как раз все отлично ясно :)

того, что надо вникнуть в суть чужого кода, понять смысл выполняемых им действий, так еще надо постоянно держать в голове что это за переменная и какого она типа!

А типа когда тип задан явно этого делать не надо?

Прокрутил немного вниз, уже не видно декларацию переменной, и что делать? Крутить обратно вверх чтоб смотреть?
По-моему гораздо проще навести мышкой и посмотреть, как посоветовал Павел (не путать с __Pavel__!!!)
Другое дело - зачем вообще что-то смотреть?

Вот переменные:

CurrentUserID
DateCreated
HitsCount
AllowedUsersList
ActiveSite

Я не знаю в каком коде они объявлены, но могу предположить что:
Dim CurrentUserID As GUID
Dim DateCreated As DateTime
Dim HitsCount As Integer
Dim AllowedUsersList As List(Of User)
Dim ActiveSite As Site


Другими словами читабельность подобного кода - нулевая.

Да отличная читабельность :)
Я в таком стиле написал уже тысяч 50 строк кода, полет нормальный :)

А в таком варианте например

Dim myVar = getMyFunk(param)
Надо будет добраться до этой функции и посмотреть какой тип возвращает она! А это все лишнее время и телодвижения.. Вообщем я для себя уже давно сделал вывод - ф топку подобный способ объявления! Себе же потом дороже будет..

getMyFunk - понятно что нужно будет наводить мышкой :) И кстати не getMyFunk а GetMyFunk :)

А если у функции нормальное имя то как правило и так понятно какой тип она возвращает :)

Ответить

Номер ответа: 25
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #25 Добавлено: 26.07.08 19:07
Кстати, неявная типизация работает только для локальных переменных.

То есть ее нельзя использовать для возвращаемого типа функции (объявить Function Hello ()), для свойств, для полей, констант и т.п. Что есть как раз очень правильно, потому что в этом случае нужен явный контроль за тем, какой тип будет иметь переменная, для локальных переменных это не требуется потому что их облатсь ограничена и назначение и так понятно

Ответить

Номер ответа: 26
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #26
Добавлено: 26.07.08 19:40
это не тебе решать :)

да не мне... а здравому рассудку =)
эта тема ни как не относится к теме автора...

Ответить

Номер ответа: 27
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #27 Добавлено: 26.07.08 19:49
И кстати не getMyFunk а GetMyFunk

Это вы в Basic названия с большой буквы пишете:-)) А мне на работе приходится по 8 часов на java писать а там принято для геттеров и сеттеров названия начинать с маленькой буквы (Java Code Convention) :-)) Так что я уж пишу так, как на работе привык.. иначе в голове каша будет. Однажды мне надо было поправить свой старенький код на VB, так я умудрился в конце строки ";" поставить.. А потом долго и нудно втыкал почему у меня код не компилится.. Собственно из за java и бросил VB и перешел на C# чтоб меньше путаться.

Ответить

Номер ответа: 28
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #28
Добавлено: 26.07.08 19:52
...так я умудрился в конце строки ";" поставить. А потом долго и нудно втыкал почему у меня код не компилится...

хм... а разве студия не показывает ошибки???

Ответить

Номер ответа: 29
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #29 Добавлено: 26.07.08 19:52
Странно.. Я активно мышой пользуюсь.

Я стараюсь обходится без мыши по возможности.. гораздо быстрее с клавы получается. Я даже горячие клавищи в VS и Eclipse настроил одинаково чтоб заморочек меньше было.

Ответить

Номер ответа: 30
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #30 Добавлено: 26.07.08 19:54
хм... а разве студия не показывает ошибки???

Показывает.. Но когда ты постоянно используешь сишный синтаксис, то ; в конце строки явление самособой разумеющеся, и на глаз не воспринимается как ошибка.

Ответить

Страница: 1 | 2 | 3 | 4 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам