Зачем завершать процесс генерируя ошибку(token.ThrowIfCancellationRequested())?
Result
классы с шаблонными Cancelled
.Вот есть способ завершать задачу return-ном в методе задачи.
try-catch ресурса затратная конструкция
lock { }
сделать. Тебя компилятор поругает struct SomeStruct: IInterface
{ }
void DoSomethingStruct(SomeStruct s)
{ }
void DoSomethingInterface(IInterface i)
{ }
void Main()
{
var s = new SomeStruct();
// Без боксинга
DoSomethingStruct(s);
// Боксинг
DoSomethingInterface(s);
}
data
тип IReadOnlyDictionary - в него нельзя записывать значения.async Task<object?> MethodFirst(IReadOnlyDictionary<string, object>? data)
{
var result = new Dictionary<string, object>();
foreach (var product in Enum.GetValues(typeof(ProductType)))
{
var price = await GetCentreProductSolutionLowestPrice(countryIsoCode3, (ProductType)product, null, context.Culture, cancellationToken).ConfigureAwait(false);
if (string.IsNullOrEmpty(price))
{
return await GetContentById(context, PleaseCallUs, "Please call us", cancellationToken, data);
}
result.Add("some data", new object());
}
return result;
}
var document = new XmlDocument();
document.LoadXml("""
<ArrayOfClient>
<Client>
<Id>1</Id>
<Login>hihihaha</Login>
<Password>P@ssW0rd</Password>
</Client>
<Client>
<Id>2</Id>
<Login>blabla</Login>
<Password>P@ssW0rd</Password>
</Client>
<Client>
<Id>3</Id>
<Login>login</Login>
<Password>P@ssW0rd</Password>
</Client>
</ArrayOfClient>
""");
var login = "blabla";
var foundNode = document.SelectSingleNode($"//Client/Login[text()='{login}']");
if (foundNode is not null)
{
foundNode = foundNode.ParentNode!;
var passwordNode = foundNode.SelectSingleNode("./Password")!;
passwordNode.InnerText = "new password";
document.Save("result.xml");
}
Да, сейчас все работает, но правильно ли это? Или включение этой опции спасает даже при отправке условно данных на 1гб?
Я думаю разбить отправку по частям, но проблема в том, что отправляемые данные - коллекция классов
namespace ConsoleApp;
public delegate int Factory();
// Type: ConsoleApp.Factory
// Assembly: ConsoleApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 158825C2-2E1C-449E-A72A-66768D48C2ED
// Location: /home/user/RiderProjects/ConsoleApp/ConsoleApp/bin/Debug/net6.0/ConsoleApp.dll
// Sequence point data and variable names from /home/user/RiderProjects/ConsoleApp/ConsoleApp/bin/Debug/net6.0/ConsoleApp.pdb
.class public sealed auto ansi
ConsoleApp.Factory
extends [System.Runtime]System.MulticastDelegate
{
.method public hidebysig specialname rtspecialname instance void
.ctor(
object 'object',
native int 'method'
) runtime managed
{
// Can't find a body
} // end of method Factory::.ctor
.method public hidebysig virtual newslot instance int32
Invoke() runtime managed
{
// Can't find a body
} // end of method Factory::Invoke
.method public hidebysig virtual newslot instance class [System.Runtime]System.IAsyncResult
BeginInvoke(
class [System.Runtime]System.AsyncCallback callback,
object 'object'
) runtime managed
{
// Can't find a body
} // end of method Factory::BeginInvoke
.method public hidebysig virtual newslot instance int32
EndInvoke(
class [System.Runtime]System.IAsyncResult result
) runtime managed
{
// Can't find a body
} // end of method Factory::EndInvoke
} // end of class ConsoleApp.Factory
Можно ли увидеть аналог пример кода на c# java с этим типом? Как-то наглядно продемонстрировать отличие от void. Иначе никак не пойму?
А почему нету Типа, который ни чего не упаковывает, а просто передает двойное машинной слово?
long
. Передавай везде его, а внутри делай каст/приведение. А вообще, зачем делать стек еще больше? Если надо передать только байт, ты предлагаешь передавать сразу 8?кортежи в 8 байт.
// почему такого нету, вроде же легко можно добавить, я куча раз сталкивался,
// когда дженерик писать прям в лом, или большие изменения внесет, или еще что,
// а передать надо byte int double
where
тебе в помощь