Вызов нестатичного метода из другого класса
P.S.Да, вопрос однозначно тупой, а ответ гениально прост.Но я пытался сделать все сам, так и не получилось.
13 дек 2017 в 13:32
Blaster b=new Blaster(); b.PewPew();
13 дек 2017 в 14:37
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Раз у вас есть класс Shoot , которому нужен бластер, то вам нужно дать этому классу экземпляр бластера. Соответственно бластер должен приходить либо в конструкторе (ну или в крайнем случае через публичное свойство), либо как аргумент метода.
Получится либо так:
public class Shoot : MonoBehaviour < Blaster blaster; public void Shot()< blaster.PewPew(); >// тут другой код >
public class Shoot : MonoBehaviour < Blaster blaster = new Blaster(); public void Shot()< blaster.PewPew(); >>
public class Shoot : MonoBehaviour < public void Shot(Blaster blaster)< blaster.PewPew(); >>
Как использовать метод из другого класса java
Чтобы использовать метод из другого класса его необходимо вызвать через объект этого класса или через имя класса, если метод статический.
// Класс, где вызываем методы другого класса public class Example public static void main(String[] args) // Создаем объект класса Greetings greetings = new Greetings(); // Вызываем метод greetings.printHello(); // => Hello // Вызываем статический метод Greetings.printHexlet(); // => Hexlet > > class Greetings public void printHello() System.out.println("Hello"); > public static void printHexlet() System.out.println("Hexlet"); > >
Как вызвать метод из другого класса c
Ну еще можно сделать свой класс наследником класса программ. что-то вроде такого(правда не знаю сработает ли,но должно..))
namespace MySpase < public class Program < public void ShowText(string text) \\вызвать этот метод < writeline(text); >> static class Function:Program < void myFunction() < this.ShowText(" "); >> >
Не давай организму поблажки, каждый день тренируй его в шашки..
Форумчанин
Регистрация: 10.06.2010
Сообщений: 239
Спасибо, помогло.
Только пока ковырялся решил сделать графический интерфейс и теперь мне надо вывести результат в текстбокс ну или в лейбл, но я не могу получить доступ к элементам формы из своего класса (static class Function), а только из класса формы (public partial class Form1 : Form).
Что делать?
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
Дружите с Linq 😉
Форумчанин
Регистрация: 15.10.2008
Сообщений: 822
Заведи в своем классе экземпляр класса Form и в метод своего класса передавай форму Form1.
Не давай организму поблажки, каждый день тренируй его в шашки..
Форумчанин
Регистрация: 10.06.2010
Сообщений: 239
Мде, раньше как то попроще было. Что то я пока не проникся новой логикой програмирования. Видимо преимущества начинаются только на больших проектах.
Поду дальше читать книжку.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Подписаться на событие другого класса | boris-blade | Общие вопросы .NET | 1 | 06.04.2010 22:53 |
| Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? | TwiX | Общие вопросы Delphi | 3 | 15.11.2009 00:54 |
| Как обратиться к объекту формы из другого класса java | micha-r | Общие вопросы по Java, Java SE, Kotlin | 1 | 03.10.2009 21:07 |
| ActionScript как создать метод класса? | Kn793 | JavaScript, Ajax | 0 | 15.07.2009 15:32 |
| вызвать метод класса, находящегося в другом модуле | zalum | Общие вопросы Delphi | 4 | 06.05.2009 08:47 |
Как вызвать метод класса Form из другого класса на C#?
Решил сделать простенькую программу, которая вычисляет из числа с плавающей запятой целую и дробную часть, но столкнулся с тем, что стандартные методы типа Convert.ToDouble или Double.TryParse на этапе компиляции вызывают исключения. Оказалось, что вся эта белиберда связана с тем, что в ОС Windows в настройках, разделителем целой и дробной части (см. рисунок ниже) выступает запятая, а я пихал числа с разделителем точка! Такие вещи прокатывали в Delphi, но не в C#.
Также оказалось довольно-таки проблематично вызвать метод одного класса из другого класса. Но как говорится, кто ищет — тот всегда найдёт!

Создаём проект
На форме помещаем три textBox и одну button.


using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication42 < public partial class Form1 : Form < public Form1() < InitializeComponent(); >public double f; public class MyClass < public static TextBox EditText1 = new TextBox(); public string StrText = EditText1.Text; public void CalculateIntAndDouble(Form1 form) < form.textBox2.Text = Convert.ToString(Math.Truncate(Convert.ToDouble(this.StrText))); form.textBox3.Text = Convert.ToString(form.f - Convert.ToInt32(form.textBox2.Text)); >> private void button1_Click(object sender, EventArgs e) < string text; f = 0; text = textBox1.Text; Char separator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0]; String Source = text.Replace('.', separator); f = Convert.ToDouble(Source); MyClass.EditText1.Text = Convert.ToString(f); MyClass myClass2 = new MyClass(); myClass2.CalculateIntAndDouble(this); >> >
p.s. Или наоборот: System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(«en-US»);
p.s.s. И не надо ничего реплейсить