public class APIResult
{
public int errorCode { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string errorMessage { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public object messageData { get; set; }
public APIResult(int errorCode, string errorMessage, object data)
{
this.errorCode = errorCode;
this.errorMessage = errorMessage;
messageData = data;
}
}
public abstract class BaseAPIController : Controller
{
protected JsonResult ApiMessage(int errorCode, string errorMessage = null, object data = null)
{
return Json(new APIResult(errorCode, errorMessage, data));
}
}
// И пример использования
public YourController: BaseAPIController
{
public async Task<IActionResult> YourAction(int id)
{
return ApiMessage(0, data: new { id = id });
// Или
// return ApiMessage(-2, errorMessage: "Invalid request parameters");
}
}
public static object Points(int a, int b)
{
int result = 0;
try
{
//делаю что-то и падаю
return result;
}
catch(Exception ex)
{
Console.WriteLine(ex.StackTrace); //выведи мне в Console описание ошибки
}
return result;
}
int result = 0;
try
{
throw new Exception();
return result;
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
finally
{
result = -1;
}
Что должна возвращать функция в catch блоке?
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
catch
{
string result = "Ошибка";
}
catch {}
this.Hide();
public IHttpActionResult Get([FromUri] Payment payment)
Правильное ли мое утверждение в этом коде, что a,b - ref по дефолту в CLR ?
Ключевое слово ref используется для передачи аргумента по ссылке, а не по значению.(источник)
Эффект передачи по ссылке в том, что все изменения вызываемого метода отражаются на значении переменной аргумента, используемой в вызове метода. Например если вызывающий объект передает выражение локальной переменной или выражение доступа к элементу массива и вызванный метод заменяет объект, на который ссылается параметр ref, то локальная переменная или элемент массива взывающего объекта теперь ссылаться на новый объект.
static void Add
значение, а не ссылку на это значение. ref
- то переменная будет менять своё значение (если к ней что-то добавите/отнимите и т.д.). int a = 1;
a = a*5+9; // a=14;
ref
- то, "значение" будет меняться по ссылкеstatic void Method(ref int i)
{
i = i + 30;
}
static void Main()
{
int val = 1;
Method(ref val);
Console.WriteLine(val);
// Output: 31
}
Если я пишу код на основе других, это плохо?