

C# get set
Potřebuji dostat string "jmeno" z formu2 do formu1
//form2
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 TextEdit01
{
public partial class startKonecPGM : Form
{
string jmeno;
public startKonecPGM()
{
InitializeComponent();
}
// Tlačítko vložit
public void btnOKJmenoPGM_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
// Tlačítko konec
private void btnCancelJmenoPGM_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
public string JmenoPGM
{
get
{
return jmeno;
}
set
{
jmeno = value;
}
}
private string jmenoPGM(string jmeno)
{
jmeno = "0 BEGIN PGM " + txtJmenoPGM.Text + " MM"
+ Environment.NewLine + Environment.NewLine +
"150 END PGM " + txtJmenoPGM.Text + " MM";
return jmeno;
}
}
}
// form1
private void btnSartKonecPGM_Click(object sender, EventArgs e)
{
startKonecPGM startKonecPGM = new startKonecPGM();
startKonecPGM.ShowDialog();
if (startKonecPGM.DialogResult == DialogResult.OK)
{
richTextBox1.SelectedText = startKonecPGM.JmenoPGM; // tady potřebuji dostat string jmeno
}
}
No a v čem je problém?
string "jmeno" se nezobrazí v richTextBox1
A jsi si jistý, že ten string má vůbec nějakou hodnotu? Nikde totiž nevidím, že bys ji nastavovat.
Tady v té funkci
private string jmenoPGM(string jmeno)
{
jmeno = "0 BEGIN PGM " + txtJmenoPGM.Text + " MM"
+ Environment.NewLine + Environment.NewLine +
"150 END PGM " + txtJmenoPGM.Text + " MM";
return jmeno;
}
Tak to funguje
public string JmenoPGM
{
get
{
return "0 BEGIN PGM " + txtJmenoPGM.Text + " MM"
+ Environment.NewLine + Environment.NewLine +
"150 END PGM " + txtJmenoPGM.Text + " MM";
}
To je sice hezké, že na to máš metodu (nikoliv funkci), ale pokud ji nikde nevoláš, tak samozřejmě nic neudělá.
jak tu metodu v get zavolám
Tím jsem mluvil o původní verzi.
Zajimalo by mě jak by to šlo napsat stou metodou
get { return jmenoPGM(""); }
Ale je to už trochu prasárna.
Super funguje to.
Proč je to prasárna?
Měl bych rači používat ten způsob bez metody?
Tak jenom namátkou:
Metoda přijímá jako vstup string, který pak vůbec nepoužívá.
Buď tam měj property nebo metodu. Pokud tam máš obojí a nepoužívá se to na nic jiného, tak zbytečně zesložiťuješ kód.
A poměrně klasická věc: mícháš do sebe data a uživatelské rozhraní.
Super dík za rady.