Re[5]: делегат для функции с переменным числом аргументов
От: TK Лес кывт.рф
Дата: 24.09.08 19:21
Оценка: +1
Здравствуйте, externus, Вы писали:

E>А что касается оптимального соотношения цена/качество, то у меня есть решение, наилучшим образом удовлетворяющее этому: я просто не буду показывать в .NET эти необязательные параметры функции, и пусть писатели пользуются System.String с его могучим Format . Проблема только в том, что это подойдет для данного конкретного проекта, а он не единственный.


С другой стороны, зачем вообще давать прямой доступ к данным участвующим в unmanaged взаимодействии? Например:
  [StructLayout(LayoutKind.Sequential)]
  public struct KERNEL_CONTROL_BLOCK
  {
    [MarshalAs(UnmanagedType.I4)]
    public int cbSize;
    [MarshalAs(UnmanagedType.I4)]
    public int dwVersion;
// ...тыр-пыр...

    private IntPtr _kernelLog;

    public void KernelLog(string service, int handle, int level, string msg, params object [] pars)
    {
       // выбрать тут подходящий тип делегата, получить его экземпляр и сделать вызов
    } 
  };
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.