如何将c#destop应用程序中单个文本框的内容分成两个整数变量?

时间:2019-04-18 17:14:22

标签: c#

我正在尝试创建一个简单的桌面应用程序,您可以在其中进行分数运算。我创建了Rational类,但是我需要一个分母和分子。我只能使用2个文本框,每个部分一个。有没有办法将带有“ /”的内容分成两个不同的变量?

我写了一些简单的代码来检查文本框中的“ /”,但是我不确定如何将其分成两个变量。

char denominator;

for(int i = 0; i <= textBox1.Text.Length; i++)
{
    if (textBox1.Text[i] =='/')
    {
        int fromhere = i;

        for(int y = 0; y <= i; i++)
        {
            denominator = textBox1.Text[y];
        }
    }   
}

我想稍后将这些变量放入我的有理对象的参数中,然后允许用户执行操作。

4 个答案:

答案 0 :(得分:2)

最简单的方法是像这样使用HttpFileCollectionBase addedFiles = ... using( SmtpClient mailClient = new SmtpClient( smtpServer, Convert.ToInt16( smtpPort ) ) ) using( MailMessage emailMessage = new MailMessage( fromAddress, toAddress, subject, message ) ) { if( addedFiles?.Count > 0 ) { foreach( HttpPostedFileBase file in addedFiles ) { Boolean isOK = ( file.FileName.EndsWith( ".pdf", StringComparison.OrdinalIgnoreCase ) || file.FileName.EndsWith( ".doc", StringComparison.OrdinalIgnoreCase ) ) && file.ContentLength > 0 && file.ContentLength < 10485760; if( isOK ) { MemoryStream copy = new MemoryStream( capacity: file.ContentLength ); file.InputStream.CopyTo( copy ); // Rewind the stream, this is important! (You cannot rewind ASP.NET's file.InputStream, hence why we use a MemoryStream copy). copy.Seek( 0, SeekOrigin.Begin ); DoSomethingWithFileStream( copy ); // Rewind the stream again, this is important! copy.Seek( 0, SeekOrigin.Begin ); Attachment att = new Attachment( copy, name: file.FileName ); emailMessage.Attachments.Add( att ); } } } mailClient.Send( emailMessage ); }

string.Spilt()

答案 1 :(得分:0)

考虑到您有一个文本框:

string input = textBox1.Text;
var twoParts = input.Split('/');

if (twoParts.Length != 2)
{
    // Invalid input
    // TODO 
}

if (!decimal.TryParse(twoParts[0], out var numerator) || !decimal.TryParse(twoParts[1], out var denominator))
{
    // Invalid input
    // TODO
}

var result = numerator / denominator;

答案 2 :(得分:0)

您可以使用split命令来解决该问题

string line = "123/0215";
string[] splitedData  = line.Split('/');

console.WriteLine(splitedData[0]);
console.WriteLine(splitedData[1]);

输出将是:

 -> 123
 -> 0215 

答案 3 :(得分:0)

在按钮事件中尝试以下操作:

private void SplitAndCalculate_Click(object sender, EventArgs e)
    {
        string MyNo= textBox1.Text ;
        string[] SplitedMyNo = MyNo .Split('/');
        int N1 = int.Parse(SplitedMyNo[0]);
        int N2 = int.Parse(SplitedMyNo[1]);
        int Res = N1 + N2;
        MessageBox.Show( Res.ToString() ) ;
             }

enter image description here