Kontrollsiffra personklass c#
Hej!
Har en uppgift som lyder:
"Uppgiften består i att skapa en egen klass; personklass med följande egenskaper;
förnamn, efternamn och personnummer. Användaren ska i formuläret ange ett förnamn,
efternamn och personnummer i textfält. Du har sedan en metod i klassen som kontrollerar
om personnumret är giltigt enligt någon av algoritmerna nedan samt en metod som kollar
personens kön. Observera att klassen ska innehålla egenskaperna och metoderna enligt
ovan. Tillbaka till formuläret returneras sedan resultatet, ett meddelande om
personnumret är korrekt samt om personen är en man eller kvinna."
Jag ska ta reda på kön vilket jag gör med att kolla den 9onde siffran, vilket jag har fått att fungera. Mitt första problem är att i min GetSex metod kan jag inte använda mig av "Txtpnr.Text". Hur kommer jag åt så jag kan använda den. Kan heller inte använda den i min personklass.
Har börjat på att skapa en person klass med en struct för sakerna jag kommer att använda.
Efter jag har blivit klar med min personklass. Hur printar jag denna till Winformen när användaren skrivit in alla uppgifter och klickar på "registrera".
Ska även skapa en metod som avgör om personnumret är giltligt (idok) med 21-algoritmen. Har kollat på detta forum och andra men inte kommit fram till hur jag ska skapa denna på ett korrekt sätt så det är något som jag ska fixa, tips mottages gärna.
Övriga tips på att förbättra min kod tar jag gärna emot också.
Tack på förhand.
Kod nedanför:
using System;
using System.IO.Pipes;
using System.Reflection.Metadata.Ecma335;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
namespace Uppgift3
{
public partial class Uppgift : Form
{
public Uppgift()
{
InitializeComponent();
}
class Person
{
public string forNamn;
public string efterNamn;
public long personNummer;
public string sex;
public bool idok;
Person person = new Person("lars", "Larsson", 6504038937, "man", true);
public Person(string forNamn, string efterNamn, long personNummer, string sex, bool idok)
{
this.forNamn = forNamn;
this.efterNamn = efterNamn;
this.personNummer = personNummer;
this.sex = sex;
this.idok = idok;
}
public static string GetSex(Person person)
{
string siffraAsString = TxtPnr.Text.Substring(8, 1);
int siffraAsNum = int.Parse(siffraAsString);
int result = (siffraAsNum % 2);
if (result == 1)
{
return "Man";
}
else
{
return "Kvinna";
}
}
public static bool Idok
{
}
}
private void BtnReg_Click(object sender, EventArgs e)
{
string förNamn = TxtForNamn.Text;
string efterNamn = TxtEfterNamn.Text;
string personNummer = TxtPnr.Text;
if (personNummer.Length == 10)
{
lblRes.Text = "Förnamn: " + förNamn + "\nEfternamn: " + efterNamn + "\nPersonnummer: " + personNummer;
lblKon.Visible = true;
}
else
{
lblRes.Text = "Ange personnummer med 10 siffror";
lblKon.Visible = false;
}
// Denna ska jag ta bort när jag får den att fungera i "GetSex"
string siffraAsString = TxtPnr.Text.Substring(8, 1);
int siffraAsNum = int.Parse(siffraAsString);
int result = (siffraAsNum % 2);
if (result == 1)
{
lblKon.Text = "Man";
}
else
{
lblKon.Text = "Kvinna";
}
}
private void BtnAvsluta_Click(object sender, EventArgs e)
{
this.Close();
}
private void avslutaProgrammetToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void registreraPersonToolStripMenuItem_Click(object sender, EventArgs e)
{
LblFNamn.Visible = true;
LblENamn.Visible = true;
LblPNummer.Visible = true;
lblRes.Visible = true;
lblInst.Visible = false;
lblUppg.Visible = true;
TxtForNamn.Visible = true;
TxtEfterNamn.Visible = true;
TxtPnr.Visible = true;
BtnAvsluta.Visible = true;
BtnReg.Visible = true;
}
}
}