Как настроить StyleCop для отключения предупреждения на сгенерированном коде?

Одно решение состоит в том, чтобы просто сохранить все числа как рациональные числа во-первых. Существуют библиотеки для арифметики рационального числа (например, GMP). При использовании языка OO можно быть в состоянии просто использовать библиотеку классов рационального числа для замены класса числа.

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

, Конечно, это будет намного медленнее, таким образом, это не сможет быть практично для Вас. Зависит от того, сколько вычислений необходимо сделать, и насколько важный точность для Вас.

a = rational(1);
b = rational(3);
c = a / b;

print (c.asFraction)  --->  "1/3"
print (c.asFloat) ----> "0.333333"

6
задан Jader Dias 19 October 2009 в 18:14
поделиться

1 ответ

StyleCop: Как игнорировать сгенерированный код

Изменить: вот заголовок, который я использую в сгенерированных грамматиках для ANTLR. Фактически это тело шаблона StringTemplate, поэтому две записи \> фактически просто экранированы метками > . Помимо тега и атрибута [GeneratedCode] , нам все же пришлось отключить некоторые предупреждения, появляющиеся во время анализа кода.

//------------------------------------------------------------------------------
// \<auto-generated>
//     This code was generated by a tool.
//     ANTLR Version: ANTLRVersion
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// \</auto-generated>
//------------------------------------------------------------------------------

// $ANTLR <ANTLRVersion> <fileName>

// The variable 'variable' is assigned but its value is never used.
#pragma warning disable 219
// Unreachable code detected.
#pragma warning disable 162
// Missing XML comment for publicly visible type or member 'Type_or_Member'
#pragma warning disable 1591
// CLS compliance checking will not be performed on 'type' because it is not visible from outside this assembly.
#pragma warning disable 3019
// 'type' does not need a CLSCompliant attribute because the assembly does not have a CLSCompliant attribute.
#pragma warning disable 3021

[System.CodeDom.Compiler.GeneratedCode("ANTLR", "<ANTLRVersion>")]
[System.CLSCompliant(false)]
public class ...
6
ответ дан 17 December 2019 в 02:30
поделиться