Что то у меня тупняк у меня есть два класса в разных файлах и неймспейсах из первого метода я пытаюсь передать во второй данные и благополучно получаю ошибку "An object reference is required for the non-static field, method, or property" что бы ее избежать нужно сделать метод 2 статическим но тогда я не смогу из него обратиться к методу лога который не может быть статическим ибо он оперирует с интерфейсом. из этого возникает пара вопросов: Как создать не статический метод, чтобы его можно было бы вызвать из другого класса? как из статического метода опереривать с не статическим? класс 1 PHP: namespace WindowsFormsApplication1 { public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { VKwork.login(login, pass); } public void log(string s) { if (InvokeRequired) BeginInvoke(new Action(() => { textBox3.AppendText(s + "\r\n"); })); else textBox3.AppendText(s + "\r\n"); } } } класс 2 PHP: namespace qwe { public class qweqwe { public string login(string email, string pass) { string a = email+pass if(a == ""){WindowsFormsApplication1.Form1.log("qwe");}// тут мне внезапно хочется написать в лог return(a) } } } з.ы. код отформатирован тегом php ибо я не воспринимаю не подсвечены код)
Что бы воспользоваться методом, тебе нужно создать инстанцию класса перед использованием, пример: FunkOptions CheckBoxUpper = new FunkOptions(); По поводу статичный-нестатичный. Если возникает проблема, решение просто - сделать оба-трое динамичными. Да, проверяй код, "string a = email+pass" чего не хватает, не?";"
1. к этому решению и пришел в итоге но оно мне не очень нравиться 2. код из головы писался так что могут быть ошибки)
Как раз наоборот. Многие забывают что string это reference type у которого просто перегружен оператор +. Надо помнить что сам этот оператор не меняет исходную строку а выделяет место под новую. И так при каждом вызове +. Теперь если ты будешь вызывать этот оператор часто, получишь много выделенного и еще не собранного мусора. Почитай про StringBuilder.Append он как раз решает эту проблему.