практическое руководство передает ссылку текущего экземпляра в C#

например, что-то как (касательно этого), который не работает... Например, это перестало работать:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CopyOfThis
{
    class Program
    {
        static void Main(string[] args)
        {
            View objView = new View();
            objView.Boo();
            objView.ShowMsg("The objView.StrVal is " + objView.StrVal);
            Console.Read();
        }
    } //eof Program


    class View
    {
        private string strVal;
        public string StrVal
        {
            get { return strVal; }
            set { strVal = value; } 

        }
        public void Boo()
        {
            Controller objController = new Controller(ref this);
        }

        public void ShowMsg ( string msg ) 
        {
            Console.WriteLine(msg); 
        }


    } //eof class 

    class Controller
    {
        View View { get; set; } 
        public Controller(View objView)
        {
            this.View = objView;
            this.LoadData();
        }

        public void LoadData()
        {
            this.View.StrVal = "newData";
            this.View.ShowMsg("the loaded data is" + this.View.StrVal); 
        }
    } //eof class 

    class Model
    { 

    } //eof class 
} //eof namespace 
6
задан SamunRashid 12 January 2010 в 14:13
поделиться

4 ответа

R.java автоматически генерируется при построении. Его содержимое основано на файлах ресурсов (включая макеты и настройки).

Когда вы удалили его, он был создан заново, но если вы создадите свой собственный, вы попадете в неприятности, так как система сборки не заменит его.

Вы можете просто удалить его снова (вручную или выбрав Project- > Clean) и перестроить программу.

-121--2249340-

Я бы рекомендовал стандарт Semantic Versioning, которому, похоже, также следует система Maven versioning. Проверьте,

http://semver.org/

Короче говоря, это < мажор >. < минор >. < патч > < все _ остальное > , и вы можете добавить дополнительные правила к любой другой части так, как вам кажется нужным. например, - < квалификатор > - < номер _ построения > .

-121--1412301-

это уже является ссылкой. Код, подобный

DoSomethingWith(this);

, передает ссылку на текущий объект методу DoTaxWith .

14
ответ дан 8 December 2019 в 12:59
поделиться

Отредактируйте: Учитывая редактированный код примера, вам не нужно проходить Это , так как в качестве принятого ответов - это уже ссылка.

Вы не можете пройти ссылку ссылкой со ссылкой, потому что она постоянная; Проходя через REF, позволит ему быть измененным - что является ерундой, насколько касается C # #.

Самый близкий, который вы можете получить, это сделать:

var this2 = this;
foo(ref this2);
4
ответ дан 8 December 2019 в 12:59
поделиться

Если у вас есть метод, такой как это:

void Foo(ref Bar value) {
  // bla bla
}

, вы можете вызвать его из объекта BAR, создавая временную переменную, как Это

var temp = this;
foo.Foo(ref temp);
0
ответ дан 8 December 2019 в 12:59
поделиться

Я бы порекомендовал стандарт семантического варианта версий, который также кажется, что система версий Maven выполняется. Пожалуйста, проверьте,

http://semver.org/

Короче говоря, это . . , и вы можете добавить дополнительные правила Что-нибудь еще часть, как кажется вам подходит. например. - - .

-121--1412301-

Помните, что переменная, передаваемая , должна быть инициализирована ранее.

0
ответ дан 8 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: