Member 12867462 Ответов: 3

Передача классов или структур в функцию DLL на языке C#


Я работаю в C#, и я создал DLL, чтобы содержать библиотеку различных математических функций.
У меня также есть приложение, которое генерирует различные математические значения, которые должны быть переданы в библиотеку DLL.
Вместо того чтобы передавать их один за другим в библиотеку DLL, что легко сделать, Id скорее заполнит структуру или класс в приложении, а затем передаст структуру или класс в библиотеку DLL как один объект. Другими словами, приложение создает значения, помещает их в структуру или класс, а затем передает объект в библиотеку DLL как один объект, который может быть использован для заполнения локального класса или структуры в библиотеке DLL.
Кто-нибудь может помочь? Заранее спасибо.

Что я уже пробовал:

Я пробовал в вызывающей программе:
public  class Paramiters
{

    public  double A1;
}

Paramiters Parms = new Paramiters();
Parms.A1 = 2.0;


			DllInfo dllinfo = new DllInfo();

			dllinfo.InitializeInfo(ref Paramiters Parms);

Generates Errors	CS0118	'Form1.Paramiters' is a type but is used like a variable	
Error	CS1003	Syntax error, ',' expected



в DLL...
public  class DLLInfo
{
    public  double A;
}

DLLInfo dllinfo = new DLLInfo();
public void InitializeInfo(ref DLLInfo dllinfo)
{
             No Errors generated
}

3 Ответов

Рейтинг:
0

phil.o

dllinfo.InitializeInfo(ref Parms);

Вам нужно только указать тип параметра, когда вы объявлять метод, но не тогда, когда вы есть зовущий оно.


Рейтинг:
0

Richard MacCutchan

Определение понятия InitializeInfo требуется а DLLInfo объект в качестве его параметра, но вы пытаетесь передать Paramiters объект. Кроме того, неясно, как вы ожидаете, что это будет работать, если только вы не ожидаете, что каждый метод будет принимать точно такой же набор параметров.


Рейтинг:
0

Gerry Schmitz

Цитата:
По умолчанию все параметры передаются по значению в C#. Параметры передаются только по ссылке, Если вы явно включаете модификатор out или ref. Однако вы должны знать, что когда тип параметра является ссылочным типом, вы передаете ссылку, а не фактический объект. Дополнительные сведения см. в моей статье о передаче параметров и справочнике программиста C#.

[Автор: Джон Скит]


Обязательное чтение.

Проектирование Программного Обеспечения C# С Интерфейсами - Простой Разговор[^]