Версия C# __ ФУНКЦИОНИРУЕТ __ макрос

Это сработало для меня:

$response = file_get_contents(as you have it);

$googleobj = json_decode($response, TRUE);
$verified = $googleobj['success'];

if($verified === true) {
    ...

Параметр true в json_decode делает его ассоциативным массивом. Таким образом, вы можете получить к нему доступ, как обычный массив. Взгляните на это для получения дополнительной информации

14
задан Filip Frącz 3 November 2008 в 18:38
поделиться

4 ответа

Попытайтесь использовать это вместо этого.

System.Reflection.MethodBase.GetCurrentMethod().Name

C# не имеет __LINE__ или __FUNCTION__ макросы как C++, но существуют эквиваленты

21
ответ дан 1 December 2019 в 06:48
поделиться

То, что я в настоящее время использую, является функцией как это:

using System.Diagnostics;

public string __Function() {
    StackTrace stackTrace = new StackTrace();
    return stackTrace.GetFrame(1).GetMethod().Name;
}

Когда мне нужно __ ФУНКЦИЯ __, я просто звоню __ Функция () вместо этого. Например:

Debug.Assert(false, __Function() + ": Unhandled option");

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

Я предполагаю то, что я должен сделать, создают функции отладки и отмечают их с

[ Conditional("Debug") ]

вместо этого, но я не имею вокруг к этому.

Благодаря Jeff Mastry для его решения этого.

8
ответ дан 1 December 2019 в 06:48
поделиться

К сожалению, нет никакой эквивалентной версии того макроса в C#. Я не считаю GetCurrentMethodName () решением эквивалентный C++ __ ФУНКЦИЯ __ макрос. А именно, becase версия C++ является вычислением времени компиляции имени. Для C# это - вычисление во время выполнения и подвергается хиту производительности.

Я не делаю предположений о серьезности стоимости, но существует тот

6
ответ дан 1 December 2019 в 06:48
поделиться

Следующее должно работать, хотя оно будет оценено во времени выполнения вместо во время компиляции.

System.Reflection.MethodBase.GetCurrentMethod().Name
4
ответ дан 1 December 2019 в 06:48
поделиться
Другие вопросы по тегам:

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