Цикл foreach C# - продолжает проблему

Воспроизведение (хех) этой идеи здесь и сейчас, когда я знаю, как на самом деле «отвечать» на вопросы по SO.

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

По существу:

  1. Зарегистрируйтесь у провайдера ddns, например, DuckDNS.org.
  2. Они дают вам поддомен в одном из своих доменов, например flp.duckdns.org.
  3. Вы устанавливаете клиент обновления на сервер.
  4. Клиент обновления (в основном демон) проверяет обновления IP-адреса, а затем уведомляет провайдера об изменении IP-адреса.
  5. Поставщик обновляет запись A на своих серверах имен, чтобы отразить изменение.

Я думаю, что обновление должно быть почти немедленным, но я не уверен, ограничена ли задержка распространения именами хостов или если записи A фактически кэшируются по пути (таким образом, обходя поиск сервера имен).

Пара потенциальных проблем (помимо задержек распространения):

  1. Будет ли сохранен клиент обновления между перезагрузками, миграциями или другими действиями AWS? Это в основном вопрос, который у меня возник, потому что я не знаю, как можно настроить / управлять фактическими экземплярами ec2, используемыми для RDS. Можно ли вообще установить что-то дополнительное на сервер?
  2. Могут возникнуть проблемы с обратным поиском DNS, когда IP-адрес разрешается на несколько имен хостов. Это потенциально может быть решено с помощью нескольких сетевых интерфейсов с разными внешними IP-адресами, но мы вернулись к большему количеству изменений инфраструктуры.

Я думаю, что проблему № 1 можно решить с помощью довольно простой лямбда-функции и триггеров событий, если у поставщика динамического DNS есть API.

Хотя это немного временное решение. Я думаю, что VPN и прокси-решения, безусловно, являются более надежными вариантами.

6
задан Jon Skeet 2 May 2009 в 16:31
поделиться

4 ответа

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

Вы хотите выполнять проверку на основе значения ячейки. , Например:

if (cell.Value == null || cell.Value.Equals(""))
{
    continue;
}

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

if (IsEmptyValue(cell.Value))
{
    continue;
}
16
ответ дан 8 December 2019 в 05:23
поделиться

Вам не нужно здесь использовать ключевое слово continue, вы можете просто сделать это:

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells)
    {
        if (!cell.Size.IsEmpty) MessageBox.Show(cell.Value.ToString()); // note the ! operator
    }
}

Кроме того, вы проверяете, является ли размер ячейки опорожнить. Это действительно то, что вы хотите сделать?

Какие ошибки вы получаете?

4
ответ дан 8 December 2019 в 05:23
поделиться

Разве вы не должны проверять, является ли значение ячейки пустым, а не размером?

if(String.IsNullOrEmpty(cell.Value.ToString()))
    continue;
2
ответ дан 8 December 2019 в 05:23
поделиться

Я хочу читать только данные ячейки [1] ... только

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells[1])
    {
       if (cell[1].Value == null || cell.Value.Equals(""))
{
    continue;
}

        MessageBox.Show(cell[1].Value.ToString());
    }
}
1
ответ дан 8 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

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