Вот пример.
Class Program
{
static void Main(string[] args)
{
in Price = 10;
Car car = new Car();
car.CurrentPrice = Price;
Price = 20; //Изменяем Price
// Как сделать, чтобы car.CurrentPrice ссылалась на Price. Т. е. при изменении Price изменялось поле car.CurrentPrice тоже.
// Или так делать вообще не правильно?
}
}
Class Car
{
...
public int CurrentPrice { get; set; }
...
}
Другие языки программирования и технологии
C# Поле класса. Как присвоить не значение, а ссылку? Пример внутри.
я так понял ты хочешь менять price в одном месте и что бы у всех объектов ссылающихся на этот price тоже было изменённое значение? можно конечно сделать как предлагает ra и использовать указатели, а можно int обернуть в ссылочный тип:
using System;
namespace ConsoleApplication64
{
class Program
{
static void Main(string[] args)
{
MyInt Price = new MyInt { Container = 10 };
Car car = new Car(Price);
Price.Container = 20;
Console.WriteLine(car.CurrentPrice);
}
}
class MyInt
{
public int Container { get; set; }
}
class Car
{
public int CurrentPrice
{
get
{
return ReferenceToPrice.Container;
}
set
{
ReferenceToPrice.Container = value;
}
}
public MyInt ReferenceToPrice { get; set; }
public Car(MyInt referenceToPrice)
{
ReferenceToPrice = referenceToPrice;
}
}
}
using System;
namespace ConsoleApplication64
{
class Program
{
static void Main(string[] args)
{
MyInt Price = new MyInt { Container = 10 };
Car car = new Car(Price);
Price.Container = 20;
Console.WriteLine(car.CurrentPrice);
}
}
class MyInt
{
public int Container { get; set; }
}
class Car
{
public int CurrentPrice
{
get
{
return ReferenceToPrice.Container;
}
set
{
ReferenceToPrice.Container = value;
}
}
public MyInt ReferenceToPrice { get; set; }
public Car(MyInt referenceToPrice)
{
ReferenceToPrice = referenceToPrice;
}
}
}
Михаил Подрешетников
Да! Спасибо. У меня то как раз не int Price предполагался, а объект класса. Я "упростил", пример, сделал просто число int, чтобы проверить сначала. Car.CurrentPrice = Price уже получает ссылку на Price, где Price - это объект класса, а не int. Про понятие "ссылочный тип" не знал.
> // Или так делать вообще не правильно?
Да.
Для чего нужна переменная Price? Можно:
car.CurrentPrice = 10;
...
car.CurrentPrice = 20;
...
Можно использовать указатели, но код становится небезопасным. Нужны очень веские причины, что бы использовать такое в программе.
using System;
class Test {
unsafe private int* _val;
unsafe public void SetPtr(int* ptr) { _val = ptr; }
unsafe public int Val {
get {
if (_val != null) return *_val; else return 0;
}
set {
if (_val != null) *_val = value;
}
}
}
class Program {
static void Main(string[] args) {
int n = 10;
var test = new Test();
unsafe {
test.SetPtr(&n);
}
Console.WriteLine("test.Value = " + test.Val);
n += 10;
Console.WriteLine("test.Value = " + test.Val);
}
}
Компилируется только с опцией /unsafe
Да.
Для чего нужна переменная Price? Можно:
car.CurrentPrice = 10;
...
car.CurrentPrice = 20;
...
Можно использовать указатели, но код становится небезопасным. Нужны очень веские причины, что бы использовать такое в программе.
using System;
class Test {
unsafe private int* _val;
unsafe public void SetPtr(int* ptr) { _val = ptr; }
unsafe public int Val {
get {
if (_val != null) return *_val; else return 0;
}
set {
if (_val != null) *_val = value;
}
}
}
class Program {
static void Main(string[] args) {
int n = 10;
var test = new Test();
unsafe {
test.SetPtr(&n);
}
Console.WriteLine("test.Value = " + test.Val);
n += 10;
Console.WriteLine("test.Value = " + test.Val);
}
}
Компилируется только с опцией /unsafe
Похожие вопросы
- Есть четыре переменные, нужно рандомом присвоить им значения от 0 до 3, так чтобы значения не повторялись. пишу на Си)
- c++ не могу понять в чем ошибка в небольшом примере
- Вопрос по C++, по классам, можно ли назвать классы объектами? что значит public и private
- Почему все так хвалят этот C++ ?Че он такое умеет что не может к примеру delphi
- Извините за тупой вопрос, но для чего в c++ нужны классы? Для того что бы было легко отсортировать код или ещё зачем?
- Задача на C#. 7 КЛАСС
- Помогите, пожалуйста, понять значение доступов к сайту. Внутри.
- Как в HTML вписать текст на картинку как на примере внутри...?
- Умею качественно удалять любые надписи с любых фото. Как на этом можно заработать? Примеры внутри.
- При попытке присвоить значение вылетает ошибка. Класс создаеться на другой форме. Подскажите в чем ошибка?