2016-07-05 2 views
2

Импробовать какой-то другой подход. Я не уверен, что его можно разместить с помощью() выше, или существует другой способ.C# положить методы внутри использование утверждения возможно?

public class Main 
{ 
    public Main() 
    { 
     using(Type t = new Type) 
     { 
     public void SomeFunction() { 
      t.toString()} 
     } 
    } 
} 
+1

Если это действительно сработало, то каков был бы объем 't' и когда он будет создан и удален? просто единственная функция? Если да, почему бы просто не поместить его внутрь функции? –

ответ

8

Это не возможно, но вы можете сделать это так:

using(Type t = new Type) 
{ 
    SomeFunction(t); 
} 

public void SomeFunction(Type tType) 
{ 
    tType.ToString(); 
} 

Примечание:t будет передана SomeFunction() и будет расположен на } использования блока, если класс Type реализует IDisposible, так как оператор Using корректно вызывает метод Dispose, и (когда вы используете его, как показано выше), он также приводит к тому, что сам объект выходит из области действия, как только s Dispose называется

+0

Можно ли поставить весь класс под использование инструкции ?. –

+0

Нет, но вы можете создать свой объект с помощью переменной; еще раз обратите внимание, что класс должен реализовывать IDisposible –

Смежные вопросы