class Foo {
public Foo(int requiredIndex) {
RequireSelectedIndex = requiredIndex;
}
public int RequireSelectedIndex {get; init;} // cmbData.SelectedIndex == 0 to property jest tutaj Twoim 0
public bool IsCorrect(int selectedIndex, ??? adresMAc)
{
return SelectedIndex == RequireSelectedIndex && (adresMAc.Length == 4) && OnlyHexInString(adresMAc);
}
public bool OnlyHexInString(??? adresMAc)
{
//przenies tutaj OnlyHexInString
}
}
wiec ta klasa zalatwi Ci powtarzalnosc ifow. Wystarczy teraz ze wywolasz
var Foo = new Foo(0);
if(foo.IsCorrect(cmbData.SelectedIndex, adresMAc))
{
}
to byla ta część prostsza. Teraz to trudniejsze. W zaleznosci od ifa przypisujesz do textu wireless.WiFi_with_limit0X, to sie srednio da zautomatyzowac w stanie jakim kod teraz wyglada. Podam Ci dwie wersje, jedna ktora sam bym wybral, druga to taki quick fix
przepisalbym tworzenie WiFi_with_limit_0X
i powiazalbym (np dzieki Dictionary) z kontrolka w ktorej ma byc uzywane. Nie podam przykladu, bo tak jak pisze, przepisalbym to :)
quick fix
class Bar {
public string WifiWithLimit {get; init;}
public string WifiWithoutLimit {get;init;}
private ?? _scpClient = new ();
public Bar(string wifiWithLimit, string wifiWithoutLimit) {
WifiWithLimit = wifiWithLimit;
WifiWithoutLimit = wifiWithoutLimit;
}
public string GimmeText(bool isLimited) {
return isLimited ? WifiWithLimit : WifiWithoutLimit
}
public bool Connect(??? networkConfig) { // networkConfig.network_WiFi()
try
{
var networkConfigStream = new MemoryStream(Encoding.UTF8.GetBytes(networkConfig));
scpClient.Upload(networkConfigStream, path + filname);
return true;
}
catch (Exception ex)
{
return false;
}
}
}
robisz dalej cos na zasadzie
if(bar.Connect) {
txtLog.Text = "Poprawnie wysłano konfigurację";
btnConnect.BackColor = Color.LightBlue;
btnConnect.Enabled = true;
btnConnect.Text = "Połącz ponownie";
bar.Disconnect(); // zostawiam CI do zaimplementowania ;)
label1.Enabled = false;
label2.Enabled = false;
txtMAC.Enabled = false;
cmbData.Enabled = false;
btnSend.Enabled = false;
}
i ten fragment moze byc funkcja w Twojej obecnej klasie (np SetupUIBasedOnConnection)