Лично, я взял странность календарного API Java как признак, что я должен был отделить меня от Грегорианско-центрального мышления и попытки программировать более агностически в этом отношении. А именно, я учился еще раз избегать hardcoded констант для вещей как месяцы.
, Какое из следующего, более вероятно, будет корректно?
if (date.getMonth() == 3) out.print("March");
if (date.getMonth() == Calendar.MARCH) out.print("March");
Это иллюстрирует одну вещь, которая раздражает меня немного во Время Joda - это может поощрить программистов думать с точки зрения hardcoded констант. (Только немного, все же. Это не, как будто Joda принуждение программисты к программе плохо.)
Интерфейс может иметь только общедоступные методы. Вы можете рассмотреть возможность использования абстрактного базового класса с защищенным абстрактным методом AddError
для этого. Затем базовый класс может реализовать интерфейс IValidationCRUD
, но только после того, как вы удалите частный метод.
вот так:
public interface IValidationCRUD
{
ICRUDValidation IsValid(object obj);
}
public abstract class ValidationCRUDBase: IValidationCRUD {
public abstract ICRUDValidation IsValid(object obj);
protected abstract void AddError(ICRUDError error);
}
Да, он доступен на CDN Google.
Все, что вам нужно, находится здесь: http://code.google.com/apis / библиотеки /
Вы можете создать ссылку непосредственно на файл javascript: https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
или использовать google.load
метод
Обновление
Также доступно на Microsoft » Однако наиболее близкое поведение к «частным полям», которого вы можете достичь, - это использование явной реализации (объяснено здесь: http://msdn.microsoft.com/en-us/library/ms173157.aspx )
Правило интерфейса:
CLR также позволяет интерфейсу содержать статические методы, статические поля, константы и статические конструкторы. Однако интерфейс, совместимый с CLS, не должен иметь ни одного из этих статических членов, поскольку некоторые языки программирования не могут определять их или получать к ним доступ. Фактически, C # не позволяет интерфейсу определять какие-либо статические члены. Кроме того, среда CLR не позволяет интерфейсу содержать какие-либо поля экземпляра или конструкторы экземпляров.
Это правила интерфейса, и вы ничего не можете с этим сделать:)
Это запрещено
interface IIValidationCRUD
{
static ICRUDValidation IsValid(object obj); //error
}
interface IIValidationCRUD
{
public ICRUDValidation IsValid(object obj); //error
}
Частный член не делает смысл как часть интерфейса. Интерфейс предназначен для определения набора методов, роли, которую всегда должен реализовывать объект. С другой стороны, частные методы - это детали реализации, не предназначенные для публичного использования.
You should probably check out the MSDN article here about interfaces: http://msdn.microsoft.com/en-us/library/ms173156.aspx