Вы оцените следующие два синтаксических сахара:Имеется ли эта особенность? Определение мои собственные фигурные скобки в C#
lock(obj)
{
//Code
}
same as:
Monitor.Enter(obj)
try
{
//Code
}
finally
{
Monitor.Exit(obj)
}
и
using(var adapt = new adapter()){
//Code2
}
same as:
var adapt= new adapter()
try{
//Code2
}
finally{
adapt.Dispose()
}
Очевидно, что первый пример в каждом случае является более удобным для чтения. Есть ли способ самостоятельно определить эту вещь, как на языке C#, так и в среде IDE? Причина, по которой я спрашиваю, заключается в том, что существует много аналогичных способов (длинного рода), которые выиграют от этого, например. если вы используете ReaderWriterLockSlim, вам нужно что-то очень похожее.
EDIT 1:
меня попросили привести пример, так что я дам ему идти:
myclass
{
ReaderWriterLockSlim rwl = new ReaderWriterLockSlim();
void MyConcurrentMethod()
{
rwl.EnterReadLock();
try{
//Code to do in the lock, often just one line, but now its turned into 8!
}
finally
{
rwl.ExitReadLock();
}
}
}
//I'd rather have:
void MyConcurrentMethod()
{
rwl.EnterReadLock()
{
//Code block. Or even simpler, no brackets like one-line ifs and usings
}
}
Конечно вы должны дать некоторые мысли, как использовать TryEnterReadLocks и такие вещи с возвратами. Но я уверен, что вы что-то придумали.
Вы можете эмулировать нагрузку вещей с помощью конструктора, как "пре-блок" и Dispose(), как «пост-блока ". – Dykam
Можете ли вы пояснить, что вы подразумеваете под этим? – Carlos
там вы: http://stackoverflow.com/questions/2882983/does-this-feature-exist-defining-my-own-curly-brackets-in-c/2932023#2932023 – Dykam