Лучшая практика использования ключевое слово в C#

Вам нужно указать ваше соединение.

$result = mysqli_query($link, "SELECT $rowname FROM $tablename WHERE $finder`='$findervalue'");

Кроме того, ваше соединение неверно, если оно не является полностью фальшивым псевдокодом (повторяется * .com). Он должен быть похож на это:

$link=mysqli_connect("site","user","pw","db");

Заполните ваши собственные учетные данные.

17
задан 5 January 2009 в 14:16
поделиться

8 ответов

Существует причина, что один из статического анализа кода (=FxCop) управляет точками в Вас, когда Вы используете out параметры. Я сказал бы: только используйте out, когда действительно необходимый в сценариях типа interop. Во всех других случаях просто не используйте out. Но возможно это - просто я?

21
ответ дан 30 November 2019 в 02:39
поделиться

Ваш подход лучше, чем, потому что можно "объединить вызовы в цепочку" тот путь:

DoSomethingElse(DoThing(a,b).Result);

в противоположность

DoThing(a, out b);
DoSomethingElse(b);

методы TryParse, реализованные с, была ошибка, IMO. Это было бы очень удобно в цепочках.

6
ответ дан 30 November 2019 в 02:39
поделиться

Это - то, что Руководство Разработчика инфраструктуры.NET должно сказать о параметрах:

Избегают использования или параметры ссылки.

Работа с участниками, которые определяют или параметры ссылки, требует, чтобы разработчик понял указатели, тонкие различия между типами значения и ссылочными типами и различиями в инициализации между и параметры ссылки.

, Но если Вы действительно используете их :

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

Эта конвенция делает сигнатуру метода легче понять.

15
ответ дан 30 November 2019 в 02:39
поделиться

Существует только очень немного случаев, где я использовал бы out. Один из них - то, если Ваш метод возвращает две переменные, которые с точки зрения OO не принадлежат в объект вместе.

, Если, например, Вы хотите получить наиболее распространенное слово в текстовой строке и 42-е слово в тексте, Вы могли вычислить обоих в том же методе (имеющий необходимость проанализировать текст только однажды). Но для Вашего приложения, эта информация не имеет никакого отношения друг к другу: Вам нужно наиболее распространенное слово в статистических целях, но Вам только нужно 42-е слово, потому что Ваш клиент является гиковатым поклонником Douglas Adams.

Да, тот пример очень изобретен, но у меня нет лучшего...

4
ответ дан 30 November 2019 в 02:39
поделиться

Одно преимущество out состоит в том, что компилятор проверит, что CalcSomething действительно на самом деле присваивает значение someOtherNumber. Это не проверит, что someOtherNumber поле Результата имеет значение.

1
ответ дан 30 November 2019 в 02:39
поделиться

Держитесь подальше out. Это там как удобство низкого уровня. Но на высоком уровне, это - антитехника.

int? i = Util.TryParseInt32("1");
if(i == null)
    return;
DoSomething(i);
1
ответ дан 30 November 2019 в 02:39
поделиться

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

Один важный момент, тем не менее, что james curran также указанный, то, что компилятор осуществляет присвоение значения. Это - общий шаблон, который я вижу в C#, что необходимо заявить определенные вещи явно для большего количества читаемого кода. Другим примером этого является ключевое слово переопределения, которое Вы не имеете в Java.

0
ответ дан 30 November 2019 в 02:39
поделиться

Если Ваш результат более сложен, чем единственное значение, если это возможно, необходимо создать объект результата. Причины я должен сказать это?

  1. весь результат инкапсулируется. Таким образом, у Вас есть единственный пакет, который сообщает коду о полном результате CalcSomething. Вместо того, чтобы иметь внешний код интерпретируют то, что означает десятичное возвращаемое значение, можно назвать свойства для предыдущего возвращаемого значения, значения someOtherNumber, и т.д.

  2. можно включать более сложные индикаторы успеха. Вызов функции, который Вы записали, мог бы выдать исключение, если конец прибывает, прежде запускаются, но бросок исключения является единственным способом сообщить об ошибках. Используя объект результата, можно включать булевскую переменную или перечисленное значение "Успеха" с соответствующим сообщением об ошибке.

  3. можно задержать выполнение результата, пока Вы на самом деле не исследуете поле "результата". Таким образом, выполнение любых вычислений не должно быть сделано, пока Вы не используете значения.

0
ответ дан 30 November 2019 в 02:39
поделиться