C# логический порядок и поведение компилятора

В C#, (и не стесняйтесь отвечать за другие языки), в каком порядке среда выполнения оценивает логический оператор?

Пример:

DataTable myDt = new DataTable();
if (myDt != null && myDt.Rows.Count > 0)
{
    //do some stuff with myDt
}

Какое утверждение делает во время выполнения оценки первого -

myDt != null

или:

myDt.Rows.Count > 0
?

Есть ли время, когда компилятор будет когда-либо оценивать оператор назад? Возможно, когда задействован оператор "OR"?


& известен как логический побитовый оператор и всегда вычисляет все вложенные выражения

Каков хороший пример использования побитового оператора вместо "короткого замыкания логического"?

c#   language-agnostic   compiler-construction   logic    

551   18   16:03, 1st July, 2020


Печать элемента Winform / visual

Все статьи, которые я нашел через Google либо устарели, либо противоречат друг другу.

Каков самый простой способ распечатать форму или, скажем, richtextbox в c#? я думаю, что он использует класс PrintDiaglog , установив Document, но как это преобразуется?

c#   winforms    

539   2   16:03, 1st July, 2020


Кросс-платформенный, язык Agnostic GUI Markup Language?

Я узнал Swing еще в тот день, но теперь я переехал в Python и хочу сделать некоторые приложения с GUIs. У меня не было времени изучить новый GUI API, поэтому я использовал Jython, но я предпочел бы использовать CPython.

Было бы здорово, если бы у меня был один простой markup, который позволяет мне переключать GUI библиотек. Было бы еще лучше, если бы я мог использовать один и тот же язык markup для разных языков, чтобы я мог быстро сделать GUIs для любого языка, который я использую. Кто-нибудь знает о таком markup/library?

Я видел такие накладки, как Glade и wxWidget's markup (я забыл название). Они отчасти то, что я ищу (создание GUI без кодирования его на языке), но они переплетены с определенной библиотекой. И ни один из них не очень хорошо выглядит и не дружелюбен к человеческому редактированию.

python   user-interface   markup    

586   10   16:03, 1st July, 2020


Есть ли бизнес-причина для стремления к чистому макету CSS?

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

мой вопрос:

Кому могут навредить эти несколько столов?

Таблицы, кажется, работают особенно хорошо на табличных данных — почему они так оскорбляются в этот день и возраст? Google.com имеет таблицу в своем исходном коде, так же как и многие другие сайты (stackoverflow.com, кстати, не имеет).

css    

468   21   16:03, 1st July, 2020


Почему я не могу использовать блок try вокруг моего вызова super()?

Итак, в Java первая строка вашего конструктора HAS должна быть вызовом super... будь то неявный вызов super() или явный вызов другого конструктора. Вот что я хочу знать: почему я не могу поставить пробный блок вокруг этого?

Мой конкретный случай заключается в том, что у меня есть макет класса для теста. Конструктора по умолчанию нет, но я хочу, чтобы он упрощал чтение тестов. Я также хочу обернуть исключения, вызванные из конструктора, в RuntimeException.

Итак, то, что я хочу сделать, это эффективно:

public class MyClassMock extends MyClass {
    public MyClassMock() {
        try {
            super(0);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    // Mocked methods
}

Но Java жалуется, что супер-это не первое утверждение.

Мой обходной путь:

public class MyClassMock extends MyClass {
    public static MyClassMock construct() {
        try {
            return new MyClassMock();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public MyClassMock() throws Exception {
        super(0);
    }

    // Mocked methods
}

Является ли это лучшим обходным путем? Почему Java не позволяет мне сделать первое?


Моя лучшая догадка относительно "why" заключается в том, что Java не хочет, чтобы я имел сконструированный объект в потенциально противоречивом состоянии... однако, делая глумление, я не забочусь об этом. Кажется, я должен быть в состоянии сделать это выше... или, по крайней мере, я знаю, что вышесказанное безопасно для моего случая... или кажется, что так и должно быть в любом случае.

Я переопределяю все методы, которые я использую из тестируемого класса, поэтому нет никакого риска, что я использую неинициализированные переменные.

java   exception   mocking   try-catch    

506   7   16:03, 1st July, 2020


Rational Purify не удается перейти к утечкам памяти

Поэтому моя компания использует восхитительно ошибочную программу Rational Purify (как плагин для Microsoft Visual Developer Studio) для управления утечками памяти. Программа соизволила позволить вам нажать на утечку памяти после того, как вы столкнулись с ней, а затем перейти к строке, на которой происходит утечка.

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

У кого-нибудь с опытом Purify есть идеи, как я могу исправить эту проблему или иметь хорошее руководство, чтобы посмотреть?

memory-leaks   purify    

460   5   16:03, 1st July, 2020


Числовой ввод данных в WPF

Как вы обрабатываете ввод числовых значений в WPF приложениях?

Без элемента управления NumericUpDown я использую TextBox и обрабатываю его событие PreviewKeyDown с помощью кода ниже, но это довольно уродливо.

Кто-нибудь нашел более изящный способ получить числовые данные от пользователя, не полагаясь на сторонний элемент управления?

private void NumericEditPreviewKeyDown(object sender, KeyEventArgs e)
{
    bool isNumPadNumeric = (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal;
    bool isNumeric = (e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod;

    if ((isNumeric || isNumPadNumeric) && Keyboard.Modifiers != ModifierKeys.None)
    {
        e.Handled = true;
        return;
    }

    bool isControl = ((Keyboard.Modifiers != ModifierKeys.None && Keyboard.Modifiers != ModifierKeys.Shift)
        || e.Key == Key.Back || e.Key == Key.Delete || e.Key == Key.Insert
        || e.Key == Key.Down || e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up
        || e.Key == Key.Tab
        || e.Key == Key.PageDown || e.Key == Key.PageUp
        || e.Key == Key.Enter || e.Key == Key.Return || e.Key == Key.Escape
        || e.Key == Key.Home || e.Key == Key.End);

    e.Handled = !isControl && !isNumeric && !isNumPadNumeric;
}

c#   wpf    

491   17   16:03, 1st July, 2020


Есть ли реальная польза от использования J#?

Я только что видел комментарий с предложением J#, и это заставило меня задуматься... существует ли реальное, полезное использование J# вместо Java? Итак, я чувствую, что единственная причина, по которой вы даже подумали бы использовать J#, заключается в том, что руководство постановило, что компания должна прыгнуть на подножку Java... и подножка .NET. Если вы используете J#,, вы фактически теряете самое большое преимущество выбора Java... богатая кросс-платформенная поддержка. Конечно, есть Mono, но это не так богато поддерживается или полнофункционально, верно? Я помню, что слуховые формы не полностью (возможно, вообще) поддерживаются.

Я не пытаюсь bash .NET здесь, я просто говорю, что если вы собираетесь идти по маршруту Microsoft, почему бы просто не использовать C#?, если вы собираетесь идти по маршруту Java, почему бы J# не войти в картину?

Я надеюсь найти здесь несколько реальных случаев, поэтому, пожалуйста, особенно отвечайте, если вы ACTUALLY использовали J# в проекте REAL и почему.

java   j#    

553   8   16:03, 1st July, 2020


В ASP.NET MVC я сталкиваюсь с ошибкой неправильного типа при отображении пользовательского элемента управления с правильным типизированным объектом

Я сталкиваюсь с ошибкой формы: "элемент модели, переданный в словарь, имеет тип FooViewData, но этот словарь требует элемента модели типа bar", хотя я передаю объект правильного типа (bar) для типизированного пользовательского элемента управления.

asp.net-mvc    

454   2   16:03, 1st July, 2020


Веб-службы на основе документов или RPC

Я нутром чувствую, что веб-сервисы на основе документов предпочтительнее на практике - это опыт других людей? Их легче поддерживать? (Я заметил, что SharePoint использует любой для "document type" в своем интерфейсе WSDL, я думаю, что это делает его документальным).

Кроме того-теперь люди предлагают услуги типа WSDL и Rest для одной и той же функциональности? WSDL популярен для генерации кода, но для таких интерфейсов, как PHP и Rails, они, похоже, предпочитают rest.

web-services   rest   wsdl    

482   3   16:03, 1st July, 2020