странное предупреждение о ExtensionAttribute

Давайте попробуем написать это формально:

f(y,m,d) = 365*y+ y/4 - y/100 + y/400 + (153*m- 457)/5 + d - 306
date_diff(y1,m1,d1,y2,m2,d2) = f(y1,m1,d1) - f(y2,m2,d2)

Упрощение:

date_diff = (y1-y2)*(365+1/4-1/100+1/400) + (m1-m2)*30.6 + (d1-d2)

И это имеет смысл, потому что:

  1. У нас есть високосный год каждые 4 года, если только год не делится на 100, а не на 400.
  2. Среднее количество дней в месяце составляет ~ 30,6
  3. Все странные магические числа (306 и 457) уходят
32
задан abatishchev 24 May 2013 в 23:06
поделиться

3 ответа

Вы используете чей-то dll (или Ваше собственное), который реализовал этот атрибут (с точно тем же именем) самим как средство использования некоторых функций c# 3.0 на пред время выполнения.Net 3.5? (Общий прием)

Это - вероятная причина. Так как это использует корректный (MS один в GAC), это не проблема, хотя необходимо выследить другой и удалить его.

21
ответ дан 27 November 2019 в 21:00
поделиться

Подробно останавливаясь на (корректном) ответе ShuggyCoUk

Правдиво это не имеет значения, какая версия атрибута используется (GAC, 3-я часть, и т.д....). Все, что имеет значение, является компилятором C#/VB, может найти некоторый атрибут с корректным именем. Атрибут не служит никакой функциональной цели в коде. Это существует просто для сообщения Компилятора "эй, это - дополнительный метод".

можно безопасно проигнорировать это предупреждение.

12
ответ дан 27 November 2019 в 21:00
поделиться

Компилятор не знает который Система. Время выполнения. CompilerServices. ExtensionAttribute

, Таким образом, это использует определение от c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll'

А .dll Вы, использует, мог бы иметь тот же extenstion.

0
ответ дан 27 November 2019 в 21:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: