2010-07-05 1 views
0

Можно ли передать целое число в качестве ссылки при инициализации класса и безопасную ссылку?Назначить ссылку целого числа в классе

Я мог бы использовать указатели, но тогда мне нужен небезопасный контекст.

+0

Зачем вам нужно сохранять ссылку на целое число? Если вам нужен указатель на неуправляемый ресурс, вы всегда можете использовать управляемый тип IntPtr, который не требует небезопасного контекста. –

+0

Я пытаюсь портировать C++ lib на C# в Microframework. Они используют указатели для «связывания» входов и выходов ПИД-регулятора. – chriszero

ответ

3

Это невозможно.

Вместо этого, вы можете использовать класс с записываемого свойства, например:

class Reference<T> { 
    public T Value { get; set; } 
    public Reference(T value) { Value = value; } 
} 
+0

. Дженерики не доступны в Microframework. Но бокс/распаковка работает. – chriszero

1

Заверните его в пользовательском классе, я думаю.

3

Из интереса, зачем вам это нужно? Одно целое число, равное 5, равно другому целому числу, равному 5: если между ними существует какое-то дифференцирование, тип целочисленного значения не должен использоваться - вместо этого вам нужен класс.

Это не прямой ответ на ваш вопрос, но, как говорится, улучшение алгоритма лучше, чем реализация или улучшение недостатка; возможно, если бы вы могли дать нам еще какой-то контекст, мы можем помочь с вашей общей проблемой/задачей в целом?

Надеюсь, что это поможет!

+0

Я пытаюсь портировать C++ lib на C# в Microframework. Они используют указатели для «связывания» входных и выходных сигналов ПИД-регулятора. Поэтому им не нужно передавать переменные в каждом цикле – chriszero

+0

А я вижу; поэтому вы пытаетесь заменить int *. Если бы вы хотели просто пройти код без изменения алгоритмов, вам было бы хорошо обернуться, см. Ответ SLak. Однако было бы лучше не проходить такие вещи, как это, и реорганизовать код. Я не могу придумать случай, когда было бы лучше или даже необходимо передать указатель на int как на современном языке OO, таком как C#. Подумайте об использовании параметров «out» или интерфейса, который предлагает средство настройки свойств. Не стесняйтесь публиковать больше кода, и я сделаю все возможное, чтобы предложить хорошую альтернативу. –

+0

Ну, это должен быть порт Ardunio PID lib, найденный по адресу http://www.arduino.cc/playground/Code/PIDLibrary. Взгляните на конструкторы. – chriszero