дополнительный метод на типе и nullable <тип>

Вы можете использовать .banner > p {} или .banner p {}, если ваши абзацы не обязательно являются прямыми детьми.

РЕДАКТИРОВАТЬ

Моя цель - применять стилизацию ТОЛЬКО к элементам, которые имеют .banner.other-class p, а не базовый .banner p.

Есть ли способ сделать это без написания отдельных стилей CSS для каждого из 12 классов?

Вы можете определить свои правила для пользовательского класса, например так:

[110 ]

, а затем вы можете убедиться, что добавили этот класс в баннер. Другой возможностью является создание класса, который не должен применяться, например:

.banner:not(.my-other-custom-class) p {
    /*Your rules*/
}

, а затем вы можете добавить этот класс в теги, где вы не хотите, чтобы ваши стили применялись. Если вам нужны дополнительные настройки, вы можете рассмотреть возможность настройки с помощью Javascript или предоставления нам дополнительной информации о ваших классах. Конечно, самое простое - создать правила для каждого класса, например

.banner.myclass1 p, .banner.myclass2 p, banner.myclass3 p {
    /*Your rules*/
}
11
задан Jon B 12 April 2009 в 20:12
поделиться

2 ответа

К сожалению, нет. Вы можете сделать Int? (или какой бы тип обнуляемого объекта вы не использовали) метод очень легко вызывает метод, не обнуляемый, поэтому вам не нужно дублировать какую-либо логику с двумя методами - например,

public static class IntExtensions
{
    public static int AddOne(this int? number)
    {
        return (number ?? 0).AddOne();
    }

    public static int AddOne(this int number)
    {
        return number + 1;
    }
}
17
ответ дан 3 December 2019 в 03:53
поделиться

Нет, не можете. Это можно проверить экспериментально, скомпилировав следующий код

public static class Example {
  public static int Test(this int? source) {
    return 42;
  }
  public void Main() {
    int v1 = 42;
    v1.Test();  // Does not compile
  }
}

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

9
ответ дан 3 December 2019 в 03:53
поделиться