Передать переменную после вызова метода в качестве параметра - PullRequest
0 голосов
/ 02 августа 2020

Прежде чем спросить, я должен сказать, что я новичок в C#, просто хотел понять, как это делается. и я не нашел его в гугле, поскольку было довольно сложно поместить его в оператор.

Как работают методы, которые получают объект / переменную, которая помещается за ними, когда они вызываются как параметры. вместо того, чтобы помещать их в фигурные скобки метода. прямо как знаменитый ToString(). чтобы уточнить,

как я могу написать метод:

public void foo(Object before /* = the object behind */){
    console.log(before);
}

, который я могу использовать следующим образом:

object.foo();

вместо того, чтобы использовать его вот так:

foo(object);

если есть несколько способов реализовать это, я был бы рад узнать их все. спасибо.

Ответы [ 2 ]

2 голосов
/ 02 августа 2020

Так что, я думаю, вам нужен класс. Например:

class Program {

    void Foo(){
        // this method belongs to class "Program"
    }

    class MyClass {
        public void Foo(){
            // this method belongs to class "MyClass"
        }
    }

    int Main(string[] args){
        // You can call this classes Foo() as so:
        Foo();

        // You can also create a new object of your nested class and call it's Foo():
        var myInstantiatedClassObject = new MyClass();
        myInstantiatedClassObject.Foo();
    }
}

Если вы хотите расширить существующий объект, вы можете сделать это так (это расширит существующий объект string, чтобы дать ему метод с именем StrCat):

public static class StringExtensions {

    public static string StrCat(this string a, string b){
        return $"{a}{b}";
    }
}

Тогда ваши строковые объекты будут иметь этот метод:

string myString = "hello"
myString = myString.StrCat(" world");
// myString would then be "hello world"
2 голосов
/ 02 августа 2020

Один способ - чтобы метод был методом класса или структуры .

Другой способ - методами расширения . но чтобы понять их, вы должны сначала прочитать первый topi c, потому что, как следует из названия, это его расширение.

Topi c классов слишком широк для стека Ответ переполнения, вы должны найти свой любимый носитель (реальный учитель, книга, видео) и узнать о нем. Это основа C# и многих других языков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...