Оба они не возвращают IRestResponse, поэтому я не могу получить доступ к полю StatusCode.
Они возвращают Task<IRestResponse>
.Вы можете получить интерфейс, ожидая задания, например,
var task = Post(resource, objectToPost);
IRestResponse response = await task;
Или в одной строке (более распространенная):
var response = await Post(resource, objectToPost);
Разница между этими двумя асинхронными функциями
Второй пример гораздо проще.Первый пример раскручивает дополнительную задачу и передает ожидающую ее обратно вызывающей стороне, тогда как второй пример ожидает RestClient напрямую.Я не вижу смысла использовать структуру в первом примере.