Я работаю над пользовательскими правилами FxCOP. Я работаю над тем, чтобы использовать строки инструкций IL. У меня есть основное сомнение, когда мы реализуем aC# -код, мы получаем коды операций, они в разных строках для каждой команды (Исходный код Инструкция имеет несколько кодов операций в одной строке)Пользовательские правила FxCOp
сейчас мой наставник просит меня рассчитать разные линии, в которых использовались несколько кодов операций. Однако я понимаю, что каждая инструкция IL находится в другой строке. Я буду стараться, чтобы показать разницу во мнениях следующим образом:
Исходный код
opcode 1, opcode 2, opcode 3
opcode 4, opcode 5
My Opinion My Mentor's Opinion
Opcode 1 Opcode 1,Opcode 2, Opcode 3
Opcode 2 Opcode 5, Opcode 6
opcode 3
Я не смог найти, что верно. Пожалуйста, помогите мне найти, если для любого заданного кода C# инструкции IL находятся в отдельных строках, несмотря на то, что команда находится в одной строке для исходного кода, или если это то, что полагает мой наставник, и есть способ найти разные строки.
Благодаря
Я не понимаю, что вы просите. Строка источника C# может быть представлена 0 ... n IL opcodes. Линия может быть удалена компилятором (так что 0 опкодов), или это может быть x opcodes – xanatos
да, мы можем получить общее количество опкодов, согласованное. Но можем ли мы получить, сколько кодов операций используется в каждой строке исходного кода. Я думаю, мы не можем ... Но я хочу подтвердить. –
У ИЛ нет «линий». Вам понадобится файл PDB для сопоставления кодов IL с исходными кодами. Самый простой способ - использовать опцию ildasm.exe/linenum. Помните, что вы тратите свое время на это, Roslyn - это будущее, и оно здесь сегодня. –