Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/56: Рейтинг темы: голосов - 56, средняя оценка - 4.93
4 / 4 / 3
Регистрация: 22.09.2015
Сообщений: 29

Что такое поля?

12.10.2015, 23:27. Показов 11327. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
https://msdn.microsoft.com/ru-... 73118.aspx
Вот прочел и нифига не понял.
"Поле - это переменная любого типа, которая объявлена непосредственно в классе или структуре."
Т.е. все переменные объявленные (в конструкторе)? Или это та условная переменная в аргументе метода вместо которой потом ставится реальная переменная от которой мы получаем реальный (например return-ом)?
Класс или структура могут иметь поля экземпляра или статические поля, либо поля обоих типов. Поля экземпляра определяются экземпляром типа. Если имеется класс T и поле экземпляра F, можно создать два объекта типа T и изменить значение поля F в каждом объекте, не изменяя значение в другом объекте. В противоположность этому, статическое поле относится к самому классу, и является общим для всех экземпляров этого класса. Изменения, выполненные из экземпляра А, будут немедленно видны экземплярам В и С, если они обращаются к полю.
Т.е. и ссылка и объект и у структуры и у класса могут храниться и в стеке и в куче? Я думал что это не так. Особенно непонятно про: " Поля экземпляра определяются экземпляром типа." Типа опа? В натуре и по понятиям?
Как правило, используются поля только для переменных, имеющих доступность private или protected. Данные, которые класс открывает для клиентского кода, должны предоставляться через методы, свойства и индексаторы. методами, свойствами и индексаторами Используя эти конструкции для косвенного доступа к внутренним полям, можно защититься от недопустимых входных значений. Закрытое поле, которое хранит данные, представленные открытым свойством, называется резервным хранилищем или резервным полем.
А ведь всё началось с того что кто-то сказал что dynamic даёт доступ к закрытым полям и я решил понять где эти поля и для чего... И чем дальше в лес... Тем полней field'ец.
Поможите люди добрые!

Добавлено через 8 минут
Или вот еще.
Для доступа к члену объекта нужно добавить точку после имени объекта и указать имя поля: objectname.fieldname
Прочитал. Не понял Решил посоветоваться с любимой.
Зря.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2015, 23:27
Ответы с готовыми решениями:

Что такое поля-индексаторы?
Что такое поля индексаторы?

Что такое метод equals() и что такое класс Object
Ответи на два вопроса очень надо 1) Что такое метод equals(). Чем он отличается от операции ==. 2) Что такое класс Object? Какие в нем...

Битовые поля структур: что такое и зачем они нужны?
Собственно, вопрос в заголовке. Читал Шилдта, но там эта тема довольно расплывчата. Надеюсь, кто-нибудь сможет доходчиво объяснить.

4
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.10.2015, 23:42
Лучший ответ Сообщение было отмечено RedBrandt как решение

Решение

Цитата Сообщение от RedBrandt Посмотреть сообщение
Т.е. все переменные объявленные (в конструкторе)? Или это та условная переменная в аргументе метода вместо которой потом ставится реальная переменная от которой мы получаем реальный (например return-ом)?
Ух, богато завернули

Немного номенклатуры:

Переменная — это место хранения информации.
C#
1
SomeType x; // объявлена переменная х типа SomeType.
Локальная переменная — это переменная, объявленная в теле метода:
C#
1
2
3
4
void Foo()
{
   SomeType x; // x — локальная переменная
}
Поле — это переменная, объявленная в теле класса.
C#
1
2
3
4
class Foo
{
    SomeType x; // Здесь х является полем, т.к. объявлена в теле класса
}
Параметр метода — это переменная, объявленная в сигнатуре метода:
C#
1
2
3
void Foo(SomeType x) // х — параметр метода Foo
{
}
Аргумент — это значение, которое передается в метод в момент его вызова. Внутри метода соответствующий параметр будет иметь это значение:
C#
1
Foo(new SomeType()); // Новый экземпляр типа SomeType является аргументом, передаваемым в метод Foo.
Цитата Сообщение от RedBrandt Посмотреть сообщение
ссылка и объект и у структуры и у класса могут храниться и в стеке и в куче?
Могут.
На деле, конечно, объекты всегда хранятся в куче, но это всего лишь деталь реализации конкретной версии фреймворка.
Структуры при этом могут храниться и там, и там — в зависимости от продолжительности их жизни.

Цитата Сообщение от RedBrandt Посмотреть сообщение
Поля экземпляра определяются экземпляром типа.
Это значит, что у каждого экземпляра класса своя собственная переменная (если она не статическая):
C#
1
2
3
4
5
6
7
8
class Foo
{
   int x;
}
 
// У каждого экземпляра своя собственная x.
Foo one = new Foo() { x = 2 };
Foo two = new Foo() { x = 3 };
Цитата Сообщение от RedBrandt Посмотреть сообщение
dynamic даёт доступ к закрытым полям
Либо вас обманули, либо вы перепутали с Reflection.

Цитата Сообщение от RedBrandt Посмотреть сообщение
Для доступа к члену объекта нужно добавить точку после имени объекта и указать имя поля: objectname.fieldname
C#
1
2
3
4
5
6
7
foo Класс
{
   string Член;
}
 
Класс объект = new Класс();
объект.Член = "30 см";
Да простят меня 1С-ники.
3
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
13.10.2015, 08:08
Цитата Сообщение от kolorotur Посмотреть сообщение
Поле — это переменная, объявленная в теле класса.
C#
1
2
3
4
class Foo
{
   SomeType x; // x — локальная переменная
}
Чем это будет отличаться от этого:
C#
1
2
3
4
class Foo
{
   SomeType x {get; set {......}}; 
}
Цитата Сообщение от kolorotur Посмотреть сообщение
Это значит, что у каждого экземпляра класса своя собственная переменная
Судя по вашему сообщению, не своя переменная, а своё поле
0
4 / 4 / 0
Регистрация: 21.06.2011
Сообщений: 25
13.10.2015, 08:44
Цитата Сообщение от skilllab Посмотреть сообщение
Чем это будет отличаться от этого:
Это свойство
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.10.2015, 09:51
Цитата Сообщение от skilllab Посмотреть сообщение
Чем это будет отличаться от этого
Первое — поле, второе — свойство.

Цитата Сообщение от skilllab Посмотреть сообщение
Судя по вашему сообщению, не своя переменная, а своё поле
Поле — это подвид переменной.
Было бы неправильно назвать параметр метода полем, например.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2015, 09:51
Помогаю со студенческими работами здесь

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую тестовую страничку. но с серверами я ничего не понимаю! что...

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции заряженных частиц. Например, имеется проводник в цепи, чем...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг с другом. Хотелось бы, чтобы кто-нибудь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru