Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прошу задать пару вопросов 
:(
    Опции темы
A5uKa
Дата 20.4.2011, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 3
Всего: 16



Цитата(DenWPF @ 19.4.2011,  23:53)
wester, та ладно...и с каких пор константу можно изменять?

Нельзя (невозможно) создать константый массив, только вот эту коллекцию ( синтаксис Nemerle, в C# примерное так же )

Код

public static numToLetter = System.Array.AsReadOnly( array[ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' ] )

PM   Вверх
DenWPF
Дата 20.4.2011, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



A5uKa, то что сказал Экскалупатор...

 да, туплю по полной.
и просто массиву const прописать наверное нельзя, этоже не элементарный тип.
PM MAIL   Вверх
-Mikle-
Дата 20.4.2011, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 4
Всего: 59



Вы тут напутали с массивами и константами. Константа - это фиксированное значение. Константный массив, в вашем понимании - это массив констант. Сам массив остается массивом и никогда не будет константой (в любое время полю array можно задать новое значение). Следовательно значения элементов в нем, по-прежнему, можно изменять после инициализации (хоть на константы, хоть на не константы). Вообще константа это такая вещь, которая обрабатывается компилятором. В исполняемом коде, нет и не было понятия ссылка на константу или имя константы. Значения константы, при компиляции, подставляется во все те места, где она использовалась. Более того, компилятор умеет обрабатывать такие вещи как вычисление константных значений на этапе компиляции. Например, "ASD" + "DEF" скомпилируется сразу в "ASDDEF", это вообще самая элементарная вещь из всех, которые делает компилятор. Но надо знать, что при всем этом, объявление константы сохраняется в метаданных класса, а это значит, что ее можно получить через рефлекшн.

Вот простой вопрос по теме:
Чем отличается "static readonly" от "const"?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
A5uKa
Дата 20.4.2011, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 3
Всего: 16



Цитата(-Mikle- @ 20.4.2011,  08:28)
Вот простой вопрос по теме:
Чем отличается "static readonly" от "const"?

Дополню вопрос  smile 

чем
public static numToLetter = System.Array.AsReadOnly( array[ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' ] )

отличается от
public static readonly numToLetter = array[ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' ]
PM   Вверх
Fitc
Дата 20.4.2011, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.1.2010

Репутация: нет
Всего: 4



Цитата(-Mikle- @ 20.4.2011,  08:28)
Вы тут напутали с массивами и константами. Константа - это фиксированное значение. Константный массив, в вашем понимании - это массив констант. Сам массив остается массивом и никогда не будет константой (в любое время полю array можно задать новое значение). Следовательно значения элементов в нем, по-прежнему, можно изменять после инициализации (хоть на константы, хоть на не константы). Вообще константа это такая вещь, которая обрабатывается компилятором. В исполняемом коде, нет и не было понятия ссылка на константу или имя константы. Значения константы, при компиляции, подставляется во все те места, где она использовалась. Более того, компилятор умеет обрабатывать такие вещи как вычисление константных значений на этапе компиляции. Например, "ASD" + "DEF" скомпилируется сразу в "ASDDEF", это вообще самая элементарная вещь из всех, которые делает компилятор. Но надо знать, что при всем этом, объявление константы сохраняется в метаданных класса, а это значит, что ее можно получить через рефлекшн.

Вот простой вопрос по теме:
Чем отличается "static readonly" от "const"?

Знаю, что поле/свойство readonly можно инициализировать в конструкторе (классе) и значение можно менять через reflection (при желании), что нельзя сделать с константой. Еще (если не путаю) const хранится в стеке приложения,а readonly в куче
PM MAIL   Вверх
DenWPF
Дата 20.4.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Fitc, эй наглец тут вопросы задают мне. отвечать на них можно уже после того как облажался...
PM MAIL   Вверх
Fitc
Дата 20.4.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 30.1.2010

Репутация: нет
Всего: 4



Сорри smile Но ты все еще можешь дать свой ответ
PM MAIL   Вверх
nikitao
Дата 20.4.2011, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 1
Всего: 26



1)В чем отличие
string от System.String
int от System.Int32
и т д

2) Что такое пространства имен и зачем они нужны ?

3) Раскрой смысл акронимов : CIL CLR DLR WPF MSIL WCF WWF LINQ CLS CTS FCL BCL IL GC GAC XAML XML SOAP 

4) Что такое inline инициализация и когда ее не стоит использовать ?

5) Что такое дженерики , для чего они нужны и как они работают ?

6) В чем отличие типа от класса ?

7) Можно ли в .net разместить массив в стеке ?

8) Какие циклы есть в C# ? В чем их различия ? Какой из них "лишний"

9) Что делает ключевое слов yield 

10)  Что появится на экране ?
Код

using System;

namespace ConsoleApplication16
{
    class Program
    {

        static void Inc1(int i)
        {
            i++;
        }

        static void Inc2(ref int i)
        {
            ++i;
        }

        static int Inc3(int i)
        {
            return i++;
        }

        static int Inc4(int i)
        {
            return ++i;
        }

        static int Inc5(ref int i)
        {
            return i++;
        }

        static void Main(string[] args)
        {
            int i = 1;
            Console.WriteLine(i);
            Inc1(i);
            Console.WriteLine(i);
            Inc2(ref i);
            Console.WriteLine(i);
            Inc3(i);
            Console.WriteLine(i);
            i = Inc4(i);
            Console.WriteLine(i);
            i = Inc3(i);
            Console.WriteLine(i);
            i = Inc5(ref i);
            Console.WriteLine(i);

            Console.ReadLine();
        }
    }
}


Добавлено @ 16:31
11 в догонку :
Ключевые слова ref in out params ?

Это сообщение отредактировал(а) nikitao - 20.4.2011, 16:32


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
DenWPF
Дата 21.4.2011, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Цитата

1)В чем отличие
string от System.String
int от System.Int32
и т д

не чем

Цитата

2) Что такое пространства имен и зачем они нужны ?

пространства имен предназначены для логического разделения классов.

Цитата

3) Раскрой смысл акронимов : CIL CLR DLR WPF MSIL WCF WWF LINQ CLS CTS FCL BCL IL GC GAC XAML XML SOAP 

CIL - Промежуточный язык, асемблер машиного кода, создается для CLR.
CLR - исполняющая среда языка CIL.
DLR - не знаю.
MSIL - не знаю отличия от CIL. 
WWF - не знаю.
LINQ - язык запросов. расширяет возможности языка, и в большинстве случаи упрощает жизнь программиста.
CLS и CTS - вроде это спецификации, т.е чему должны придерживаться языки.
FCL - Framework class library
BCL - базовая библиотека.
IL - одно и тоже CIL
GC - сборщик мусора ?!
GAC - не знаю.
XML - язык разметки
XAML - основан на XML используется для технологии WPF.
SOAP - протокол доступа, тоже основан на XML

Цитата

4) Что такое inline инициализация и когда ее не стоит использовать ?

В одной строке задаются несколько параметров. new Classs(){name = "ddd", age = 21}
Когда не стоит использовать не знаю.


Цитата

5) Что такое дженерики , для чего они нужны и как они работают ?

дженерики - не знаю что такое.

Цитата

6) В чем отличие типа от класса ?

Не в чем.

Цитата

7) Можно ли в .net разместить массив в стеке ?

не знаю

Цитата

8) Какие циклы есть в C# ? В чем их различия ? Какой из них "лишний"

Лишний foreach ? 

Цитата

9) Что делает ключевое слов yield 

 smile 

Цитата

10)  Что появится на экране ?

1
1
2
2
3
3
3

Цитата

Ключевые слова ref in out params ?

ref out - одно и тоже только отличия ref должен быть инициализирован перед передачей в функцию.
params - передача не ограниченного количества параметров
in - используется в foreach механизма не знаю =(







ВСЕ СПАСИБО ЗА ВОПРОСЫ, пока что не буду отвечать на новые, как видите учить мне ещё много.

PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1359 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.