C# 在我的表单中使用不同类的方法
你好 所以,我有一个将阿拉伯数字转换为罗马数字的类。如果用户在dropdownlist中选择了“Arabisch”(阿拉伯语),我有一个执行的循环。 如果用户选择了“römish”(罗马),我想做同样的循环,但将数字转换为罗马。在下面,您可以看到这两个类的代码。在我的循环中,初始化“ArabicToRoman”类的方法以将数字转换为罗马数字的最佳方法是什么C# 在我的表单中使用不同类的方法,c#,winforms,loops,class,C#,Winforms,Loops,Class,你好 所以,我有一个将阿拉伯数字转换为罗马数字的类。如果用户在dropdownlist中选择了“Arabisch”(阿拉伯语),我有一个执行的循环。 如果用户选择了“römish”(罗马),我想做同样的循环,但将数字转换为罗马。在下面,您可以看到这两个类的代码。在我的循环中,初始化“ArabicToRoman”类的方法以将数字转换为罗马数字的最佳方法是什么 namespace Friedhof_Generator { class ArabicToRoman { p
namespace Friedhof_Generator
{
class ArabicToRoman
{
private string[] Tausender =
{ "", "M", "MM", "MMM" };
private string[] Hunderter =
{ "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
private string[] Zehner =
{ "", "X", "XX", "XXX", "XL", "L", "LX" , "LXX", "LXXX", "XC" };
private string[] Einer =
{ "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
private string ArabicRoman(int arabic)
{
if (arabic >= 4000)
{
int tausend = arabic / 1000;
arabic %= 1000;
return "(" + ArabicRoman(tausend) + ")" +
ArabicRoman(arabic);
}
string result = "";
int num;
num = arabic / 1000;
result += Tausender[num];
arabic %= 1000;
num = arabic / 100;
result += Hunderter[num];
arabic %= 100;
num = arabic / 10;
result += Zehner[num];
arabic %= 10;
result += Einer[arabic];
return result;
}
}
}
在阿拉伯阶级之上。下面的类与循环
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 Friedhof_Generator
{
public partial class frm_Grabnummer : Form
{
public frm_Grabnummer()
{
InitializeComponent();
ddl_Feld.Items.Add("Arabisch");
ddl_Feld.Items.Add("Römisch");
ddl_Feld.Items.Add("Alphabetisch");
ddl_Reihe.Items.Add("Arabisch");
ddl_Reihe.Items.Add("Römisch");
ddl_Reihe.Items.Add("Alphabetisch");
ddl_Nr.Items.Add("Arabisch");
ddl_Nr.Items.Add("Römisch");
ddl_Nr.Items.Add("Alphabetisch");
}
private void ddl_Feld_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void btn_Start_Click(object sender, EventArgs e)
{
int FeldVon, FeldBis, ReiheVon, ReiheBis, NrVon, NrBis;
string Friedhof;
FeldVon = int.Parse(tb_Von_Feld.Text);
FeldBis = int.Parse(tb_Bis_Feld.Text);
ReiheVon = int.Parse(tb_Von_Reihe.Text);
ReiheBis = int.Parse(tb_Bis_Reihe.Text);
NrVon = int.Parse(tb_Von_Nr.Text);
NrBis = int.Parse(tb_Bis_Nr.Text);
Friedhof = tb_Friedhof.Text;
if (ddl_Feld.Text == "Arabisch")
{
for (int iFeld = FeldVon; iFeld <= FeldBis; iFeld++)
{
for (int iReihe = ReiheVon; iReihe <= ReiheBis; iReihe++)
{
for (int iNr = NrVon; iNr <= NrBis; iNr++)
{
lb_Ausgabe.Items.Add(string.Format("{0} - {1} - {2} - {3}", Friedhof, iFeld, iReihe, iNr));
}
}
}
}
else if(ddl_Feld.Text == "Römisch")
{
}
}
}
}
使用系统;
使用System.Collections.Generic;
使用系统组件模型;
使用系统数据;
使用系统图;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows.Forms;
名称空间Friedhof_生成器
{
公共部分类frm_Grabnummer:表单
{
公共frm_Grabnummer()
{
初始化组件();
ddl_Feld.Items.添加(“阿拉伯式”);
ddl_Feld.Items.添加(“Römish”);
ddl_Feld.Items.添加(“字母表”);
ddl_Reihe.Items.添加(“阿拉伯式”);
ddl_reiche.Items.Add(“Römish”);
ddl_Reihe.Items.添加(“字母表”);
ddl_No.Items.添加(“阿拉伯式”);
ddl_编号项目添加(“Römish”);
ddl_编号项目添加(“字母表”);
}
私有void ddl\u Feld\u SelectedIndexChanged(对象发送方,事件参数e)
{
}
私有无效btn\u开始\u单击(对象发送者,事件参数e)
{
国际费尔德冯、费尔德比斯、雷赫冯、雷赫比斯、纳冯、纳比斯;
弦弗里德霍夫;
FeldVon=int.Parse(tb_Von_Feld.Text);
FeldBis=int.Parse(tb_Bis_Feld.Text);
ReiheVon=int.Parse(tb_Von_Reihe.Text);
ReiheBis=int.Parse(tb_Bis_Reihe.Text);
NrVon=int.Parse(tb_Von_Nr.Text);
NrBis=int.Parse(tb_Bis_Nr.Text);
Friedhof=tb_Friedhof.Text;
如果(ddl_Feld.Text==“阿拉伯语”)
{
对于(int-iFeld=FeldVon;iFeld,ArabicToRoman
类似乎是一个典型的助手类,在过去的日子里,您只需简单地将其公开和静态即可
public static class ArabicToRoman
{
private static string[] Tausender = { "", "M", "MM", "MMM" };
private static string[] Hunderter = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
private static string[] Zehner = { "", "X", "XX", "XXX", "XL", "L", "LX" , "LXX", "LXXX", "XC" };
private static string[] Einer = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
public static string Convert(int arabic)
{
...
}
}
用法
您可以从访问程序集的任何位置调用此函数
ArabicToRoman.Convert(234);
您还可以公开您的类和方法
public class ArabicToRoman
{
private string[] Tausender = { "", "M", "MM", "MMM" };
private string[] Hunderter = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
private string[] Zehner = { "", "X", "XX", "XXX", "XL", "L", "LX" , "LXX", "LXXX", "XC" };
private string[] Einer = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
public string Convert(int arabic)
{
...
}
}
用法
您再次将其称为任何可以访问其所在程序集的地方
var converter = new ArabicToRoman();
converter.Convert(345);
然而,现在有一个大的推动和服务架构,你可以把它作为一个单例服务,并注入你的转换器。然而,这也是有争议的
对于您的情况和您对静态类或实例类的理解水平来说,这似乎是一个很好的选择
进一步阅读
使用static修饰符声明静态成员,该成员属于
类型本身而不是特定对象。静态修饰符
可与类、字段、方法、属性、运算符、,
事件和构造函数,但不能与索引器一起使用,
终结器,或类以外的类型
ArabicToRoman
类似乎是一个典型的助手类,在过去的日子里,您只需简单地将其公开和静态即可
public static class ArabicToRoman
{
private static string[] Tausender = { "", "M", "MM", "MMM" };
private static string[] Hunderter = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
private static string[] Zehner = { "", "X", "XX", "XXX", "XL", "L", "LX" , "LXX", "LXXX", "XC" };
private static string[] Einer = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
public static string Convert(int arabic)
{
...
}
}
用法
您可以从访问程序集的任何位置调用此函数
ArabicToRoman.Convert(234);
您还可以公开您的类和方法
public class ArabicToRoman
{
private string[] Tausender = { "", "M", "MM", "MMM" };
private string[] Hunderter = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
private string[] Zehner = { "", "X", "XX", "XXX", "XL", "L", "LX" , "LXX", "LXXX", "XC" };
private string[] Einer = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
public string Convert(int arabic)
{
...
}
}
用法
您再次将其称为任何可以访问其所在程序集的地方
var converter = new ArabicToRoman();
converter.Convert(345);
然而,现在有一个大的推动和服务架构,你可以把它作为一个单例服务,并注入你的转换器。然而,这也是有争议的
对于您的情况和您对静态类或实例类的理解水平来说,这似乎是一个很好的选择
进一步阅读
使用static修饰符声明静态成员,该成员属于
类型本身而不是特定对象。静态修饰符
可与类、字段、方法、属性、运算符、,
事件和构造函数,但不能与索引器一起使用,
终结器,或类以外的类型
我特别喜欢“过去的日子里……”这部分。请投赞成票;)@MongZhu过去的日子里还是害怕静态警察!@谢谢你的回答。我会花时间对这部分有更好的了解。^^我特别喜欢“过去的日子里……”部分。投票表决;)@MongZhu在过去的日子里,或者害怕静态警察!@general谢谢你的回答。我会花时间来了解更多^^