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

Где найти исходник предопределенного атрибута?

24.11.2022, 09:08. Показов 445. Ответов 11

Студворк — интернет-сервис помощи студентам
Привет всем!

Хотел посмотреть, как работает CallerMemberNameAttribute и вижу:
C#
1
2
3
4
5
6
7
[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
public sealed class CallerMemberNameAttribute : Attribute
{
    public CallerMemberNameAttribute()
    {
    }
}
Как это понимать? куда делся код?

Заранее благодарю ВС
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2022, 09:08
Ответы с готовыми решениями:

Где можно найти исходник простенького web crawler?
Подскажите где можно найти исходник простенького web crawler?

Где найти исходник dll
собственно сабж, нужен небольшой исходник любой dll в целях обучения, а то делаю свой dll а он работать не хочет :( ХЗ почему

Где найти исходник lst.sort()?
Доброго времени суток. Стало интересно какой тип сортировки использует питон по дефолту и где можно найти исходник? Я нашел собранный...

11
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
24.11.2022, 09:24
vovikdoc, а какой код вы там ожидали увидеть?
Данный атрибут - это не более чем маркер, чтобы увидеть как он используется - смотрите исходники компилятора, который определяет наличие этого атрибута и генерирует нужный код.
Оно так с большинством атрибутов: это метки, возможно с некоторыми дополнительными данными.
Логика прописывается не в них, а в типах, которые их используют.
1
Эксперт .NET
 Аватар для Rius
13076 / 7637 / 1669
Регистрация: 25.05.2015
Сообщений: 23,243
Записей в блоге: 14
24.11.2022, 09:25
vovikdoc, полагаю, код не нужен, так как атрибут не работает сам, то есть ничего не выполняет.
Это компилятор, когда видит отмеченный атрибутом параметр, меняет собираемый код.
1
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
24.11.2022, 09:36
vovikdoc, то что вы открыли это декомпилированный заголовок, хотите получить код реализации доставайте эту сборку, и декомпилируйте через ilspy или dotpeek, только что вы там увидеть хотите, непонятно.
0
3 / 3 / 2
Регистрация: 13.12.2020
Сообщений: 85
24.11.2022, 09:55  [ТС]
Цитата Сообщение от Andreyip Посмотреть сообщение
ilspy или dotpeek
То-же самое показывают(((
0
Эксперт .NET
 Аватар для Rius
13076 / 7637 / 1669
Регистрация: 25.05.2015
Сообщений: 23,243
Записей в блоге: 14
24.11.2022, 10:10
Ещё исходный код async и await поищите в декомпиляторе.

Исходник атрибута в первом посте темы. Это всё.
В оригинале он выглядит так: https://github.com/microsoft/r... tribute.cs
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16119 / 11244 / 2887
Регистрация: 21.04.2018
Сообщений: 33,065
Записей в блоге: 2
24.11.2022, 10:11
Цитата Сообщение от Andreyip Посмотреть сообщение
то что вы открыли это декомпилированный заголовок
Вы не правы.
Это и есть полный исходный код этого атрибута https://referencesource.micros... b736888186

Цитата Сообщение от vovikdoc Посмотреть сообщение
То-же самое показывают(((
vovikdoc, вам уже выше написал kolorotur: атрибут - это не более чем маркер.
Атрибуты сами по себе нечего не делают.
Это просто одни из способов добавить информацию в Метаданные.
Кто и как потом будет использовать эти Метаданные атрибут не знает и никак не может повилять на это.
См. C# и .NET | Атрибуты - Metanit
0
3 / 3 / 2
Регистрация: 13.12.2020
Сообщений: 85
24.11.2022, 10:18  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Ещё исходный код async и await поищите в декомпиляторе.
А вот находил:
C#
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
33
34
35
36
37
38
39
40
41
//***
void IAsyncStateMachine.MoveNext()
        {
            int num1 = this.state;
            try
            {
                TaskAwaiter awaiter;
                int num2;
                if (num1 != 0)
                {
                    Program.DisplayClass displayClass = new Program.DisplayClass();
                    displayClass.symbol = this.symbol;
                    Console.WriteLine(string.Format("Метод WriteCharAsync начал свою работу в потоке {0}.", (object)Thread.CurrentThread.ManagedThreadId));
                    awaiter = Task.Run(new Action(displayClass.WriteCharAsync)).GetAwaiter();
                    if (!awaiter.IsCompleted)
                    {
                        this.state = num2 = 0;
                        this.awaiter = awaiter;
                        this.builder.AwaitUnsafeOnCompleted<TaskAwaiter, Program.WriteCharAsyncStruct>(ref awaiter, ref this);
                        return;
                    }
                }
                else
                {
                    awaiter = this.awaiter;
                    this.awaiter = new TaskAwaiter();
                    this.state = num2 = -1;
                }
                awaiter.GetResult();
                Console.WriteLine(string.Format("Метод WriteCharAsync закончил свою работу в потоке {0}.", (object)Thread.CurrentThread.ManagedThreadId));
            }
            catch (Exception ex)
            {
                this.state = -2;
                this.builder.SetException(ex);
                return;
            }
            this.state = -2;
            this.builder.SetResult();
        }
//***
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
24.11.2022, 10:29
Элд Хасп, Да действительно, прошу прощения был не прав. Просто студия в большинстве показывает только заголовки без реализаций функций.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16119 / 11244 / 2887
Регистрация: 21.04.2018
Сообщений: 33,065
Записей в блоге: 2
24.11.2022, 10:39
Цитата Сообщение от Andreyip Посмотреть сообщение
Просто студия в большинстве показывает только заголовки без реализаций функций.
По умолчанию только теги XML документации.
Но может загрузить исходники или декомпилировать. Но не для всех типов и не всегда декомпиляция будет понятна.
Если нужна точная информацию лучше поискать сами исходники.
Для Framework - это referencesource.microsoft.com и source.dot.net
Для Core и .Net - на GitHub https://github.com/microsoft/dotnet
0
Эксперт .NET
 Аватар для Rius
13076 / 7637 / 1669
Регистрация: 25.05.2015
Сообщений: 23,243
Записей в блоге: 14
24.11.2022, 10:59
Цитата Сообщение от vovikdoc Посмотреть сообщение
А вот находил
Это не исходник ключевого слова. Это то, что получается после компиляции.
С атрибутом также.
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
24.11.2022, 11:15
Цитата Сообщение от Элд Хасп Посмотреть сообщение
https://referencesource.micros...
https://source.dot.net/
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2022, 11:15
Помогаю со студенческими работами здесь

Где найти исходник программы на дельфи минимум с 20-ю классами?
Необходимо для построения Диаграммы классов. Желательно чтобы было наследование... Перерыл до фига исходников, везде вижу один, ну...

Где найти исходник программы Dia и как его редактировать?
http://dia-installer.de/ http://ru.wikipedia.org/wiki/Dia

Кто нибудь подскажет где можно найти исходник С/C++ алгоритм сжатия
Народ помогите, у меня времени нет чтобы самому разрабатывать алгоритм сжатия очень нужен алгоритм ещё лучше если на Asm (MMX, SSE2-3,...

Друзья, подскажите где найти исходник лексического анализатора для языка C++!
Очень нужен исходник лексического анализатора языка С++. Есть он где-то в открытом доступе? Может знает кто-нибудь где его скачать можно?...

Где найти исходник программы для работы с LTP-портом, чтобы компилировался в masm32?
Давно ищу исходник программы для работы с LTP портом такой чтобы компилировался в Масм 32. Нужен для изучения работы и обучения. Или...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru