Хорошо я частично там. Если Вы входите в CompizConfig и включаете команды, можно установить одну из команд к чему-то, что изменит появление окна. Затем можно установить привязку клавиш для него к той же привязке, Вы используете для переключения Поверх остальных окон. Я просто не знаю, как заставить его изменить появление окна. Я пробовал wmctrl -r :ACTIVE -b toggle,shaded
, который я думал, переключится тень, но она скрывается/раскрывает окно. Едва ли, для чего я шел. Следует иметь в виду, что необходимо установить wmctrl пакет для этого для работы.
я не знаю ни о каких с готовностью поддерживаемых способах изменить появление единственное окно. Я изучил использование gtk-window-decorator
, но это только, кажется, позволяет Вам перезагрузить настройки для всех окон. Возможно, кто-то еще может вмешаться и завершить этот ответ, но я лично не могу изобразить выход!
Полная функциональность перечисления Java недоступна в C #. Однако вы можете разумно приблизиться, используя вложенные типы и частный конструктор. Например:
using System;
using System.Collections.Generic;
using System.Xml.Linq;
public abstract class Operator
{
public static readonly Operator Plus = new PlusOperator();
public static readonly Operator Minus =
new GenericOperator((x, y) => x - y);
public static readonly Operator Times =
new GenericOperator((x, y) => x * y);
public static readonly Operator Divide =
new GenericOperator((x, y) => x / y);
// Prevent other top-level types from instantiating
private Operator()
{
}
public abstract int Execute(int left, int right);
private class PlusOperator : Operator
{
public override int Execute(int left, int right)
{
return left + right;
}
}
private class GenericOperator : Operator
{
private readonly Func<int, int, int> op;
internal GenericOperator(Func<int, int, int> op)
{
this.op = op;
}
public override int Execute(int left, int right)
{
return op(left, right);
}
}
}
Конечно, у вас нет для использования вложенных типов, но они предоставляют удобную часть «настраиваемого поведения», для которой удобны перечисления Java. В других случаях вы можете просто передать аргументы частному конструктору, чтобы получить хорошо известный ограниченный набор значений.
Некоторые вещи, которые это вам не дает:
EnumSet
Некоторые из них, вероятно, можно было бы сделать с достаточными усилиями, хотя переключение на самом деле было бы невозможным без хакерства. Теперь, если язык сделал что-то подобное, он может делать интересные вещи, заставляя переключение работать, делая хакерские действия автоматическими (например, автоматически объявляя загрузку полей const
и меняя любое переключение типа перечисления на переключение целых чисел, разрешая только «известные» случаи .)
Да, и частичные типы означают, что вам не обязательно иметь все значений перечисления в одном файле. Если каждое значение будет задействовано (что определенно возможно), у каждого может быть свой собственный файл.
t должны иметь все значений перечисления в одном файле. Если каждое значение будет задействовано (что определенно возможно), у каждого может быть свой собственный файл. t должны иметь все значений перечисления в одном файле. Если каждое значение будет задействовано (что определенно возможно), у каждого может быть свой собственный файл.Перечисления - одна из немногих языковых функций, которая лучше реализована в java, чем в C #. В java перечисления - это полноценные именованные экземпляры типа, тогда как перечисления в C # в основном именованные константы.
При этом в базовом случае они будут выглядеть одинаково. Однако в java у вас больше возможностей, так как вы можете добавлять поведение к отдельным перечислениям, поскольку они являются полноценными классами.
Есть ли какая-то особенность, которую вы ищете?
Вы, вероятно, могли бы использовать старый шаблон перечисления типа безопасного типа, который мы использовали в Java до того, как получили реальные (при условии, что те, что в C # действительно не являются классами, как утверждается в комментарии). Шаблон описан незадолго до середины этой страницы
enum , или вам нужно что-то конкретное, что есть в перечислениях Java, а в C # нет?