Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-20 14:39:10 - Torbjörn Karlsson, i forum c# (c-sharp), Tråden har 12 Kommentarer och lästs av 1115 personer

Vad missar jag här.

Jag har 2 publika variabler (TaxRate och ItemType) som jag vill tilldela värden från metoden GetTaxrate.
Tyvärr händer det inget när jag försöker.

Detta är endast testkod för eget syfte att lära mig C#. Jag är rookie på detta språk så garva inte :-)


class Product
{

static void Main(string[] args)
{
Product objGetReceipt = new Product();
objGetReceipt.PrintReceipt();
Console.ReadLine();
}

// Public variables
public string ReadName; // Name of the product
public double ReadPrice; // Price of the product
public int UnitCount; // Unit count
public string FoodItem; // FoodItem y/n
public double TaxRate; // Cannot be assigned any other value than 0
public bool ItemType; // Cannot be assigned any other value than false

public void ReadInput()
{
Console.Write(" Product name: ");
ReadName = Console.ReadLine();
Console.Write(" Product price: ");
ReadPrice = Convert.ToDouble(Console.ReadLine());
Console.Write(" Unit count: ");
UnitCount = Convert.ToInt32(Console.ReadLine());
Console.Write(" Food item y/n: ");
FoodItem = Console.ReadLine();
}

private void GetTaxrate()
{
// Cannot GET or PASS any of the values to or from any public variables

if (FoodItem.Equals("y"))
TaxRate = 0.12;
ItemType.Equals(Boolean.TrueString);
if (FoodItem.Equals("n"))
TaxRate = 0.25;
ItemType.Equals(Boolean.FalseString);
}

private void CalculateValues()
{
Product objGetReadInput = new Product();
objGetReadInput.ReadInput();

string iName = objGetReadInput.ReadName;
double iPrice = objGetReadInput.ReadPrice;
int iCount = objGetReadInput.UnitCount;

// Total price without VAT
double iTotalPrice = iCount * iPrice;

// Static VAT rate - THIS IS SET TO STATIC BECOURSE I FIND NO OTHER WAY
double iRate = 0.25;

// Total VAT
double iTax = iRate * iTotalPrice;

// Total amount with VAT
double iTotalAmount = iTax + iTotalPrice;

Console.WriteLine();
Console.WriteLine();
Console.WriteLine(" ------------------------------------------- ");
Console.WriteLine(" Product name: \t\t\t" + iName);
Console.WriteLine(" Total price: \t\t\t" + iTotalPrice);
Console.WriteLine(" Item count: \t\t\t" + iCount);
Console.WriteLine();
Console.WriteLine(" Food item: \t\t\t" + ItemType);
Console.WriteLine();
Console.WriteLine(" Total VAT: \t\t\t" + iTax);
Console.WriteLine(" Total amount: \t\t\t" + iTotalAmount);
}

private void PrintReceipt()
{
Product objGetCalcVal = new Product();
objGetCalcVal.CalculateValues();
Console.WriteLine(" ------------------------------------------- ");
}
}


Svara

Sv: C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-20 15:46:49 - Cecilia Wirén

Vad jag kan se så anropar du aldrig GetTaxrate() dvs den körs aldrig.


Svara

Sv:C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-20 16:33:38 - Torbjörn Karlsson

OK

Något åt detta håll kanske ??
Försökte använda variabeln Taxrate i en annan metod men har inte lyckats ännu, krashar bara


public double TaxRate
{
get
{
return TaxRate;
}
set
{
TaxRate = value;
}
}


Svara

Sv: C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-20 17:06:12 - Cecilia Wirén

Gör du det till en property (get o set) skall du "anropa" den

 Taxrate = 0.12;


vad ville du åstakomma med
 ItemType.Equals(Boolean.FalseString); 


Svara

Sv:C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-20 17:24:25 - Torbjörn Karlsson



Med denna ville jag helt enkelt bara kunna omvandla värdet i if satsen "y" till Boolean.TrueString osv.
ItemType.Equals(Boolean.FalseString);


Över till koden igen.... du får ursäkta mig men jag hänger inte helt med hur jag skall åstadkomma en property.

Koden nedan funkar, men inte när jag försöker anropa variablerna TaxRate och ItemType från någon annan metod som jag försökt i min kod. Har försökt att skapa nya instanser av klassen men icke.


class Product
{

static void Main(string[] args)
{
Product objGetReceipt = new Product();
objGetReceipt.PrintReceipt();
Console.ReadLine();
}

// Public variables
public string ReadName; // Name of the product
public double ReadPrice; // Price of the product
public int UnitCount; // Unit count
public string FoodItem; // FoodItem y/n
public double TaxRate
{
get
{
return TaxRate;
}
set
{
TaxRate = value;
}
}
public bool ItemType
{
get
{
return ItemType;
}
set
{
ItemType = value;
}
}

public void ReadInput()
{
Console.Write(" Product name: ");
ReadName = Console.ReadLine();
Console.Write(" Product price: ");
ReadPrice = Convert.ToDouble(Console.ReadLine());
Console.Write(" Unit count: ");
UnitCount = Convert.ToInt32(Console.ReadLine());
Console.Write(" Food item y/n: ");
FoodItem = Console.ReadLine();
}

private void GetTaxrate()
{
// Cannot GET or PASS any of the values to or from any public variables

if (FoodItem.Equals("y"))
TaxRate = 0.12;
ItemType.Equals(Boolean.TrueString);
if (FoodItem.Equals("n"))
TaxRate = 0.25;
ItemType.Equals(Boolean.FalseString);
}

private void CalculateValues()
{
Product objGetReadInput = new Product();
objGetReadInput.ReadInput();

string iName = objGetReadInput.ReadName;
double iPrice = objGetReadInput.ReadPrice;
int iCount = objGetReadInput.UnitCount;

// Total price without VAT
double iTotalPrice = iCount * iPrice;

// Static VAT rate - THIS IS SET TO STATIC BECOURSE I FIND NO OTHER WAY
//double iRate = 0.25;

double iRate = TaxRate;
bool ItemType = ItemType;


// Total VAT
double iTax = iRate * iTotalPrice;

// Total amount with VAT
double iTotalAmount = iTax + iTotalPrice;

Console.WriteLine();
Console.WriteLine();
Console.WriteLine(" ------------------------------------------- ");
Console.WriteLine(" Product name: \t\t\t" + iName);
Console.WriteLine(" Total price: \t\t\t" + iTotalPrice);
Console.WriteLine(" Item count: \t\t\t" + iCount);
Console.WriteLine();
//Console.WriteLine(" Food item: \t\t\t" + ItemType);
Console.WriteLine();
Console.WriteLine(" Total VAT: \t\t\t" + iTax);
Console.WriteLine(" Total amount: \t\t\t" + iTotalAmount);
}

private void PrintReceipt()
{
Product objGetCalcVal = new Product();
objGetCalcVal.CalculateValues();
Console.WriteLine(" ------------------------------------------- ");
}
}


Svara

Sv: C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-20 17:30:15 - Torbjörn Karlsson

Så här är outputen tänk att se ut


Product name: laptop
Product price: 10000
Unit count: 1
Food item y/n: n

---------------------------------------------------------------------------
Product name: laptop
Total price: 10000
Item count: 1
Food item: false

Total VAT: 2500
Total amont: 12500
----------------------------------------------------------------------------


Svara

Sv:C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-21 00:53:26 - Peter Andersson

ta bort raden:

bool ItemType = ItemType; // gör inte mycket nytta

property-klassen:

public double TaxRate
{
get
{
return TaxRate;
}
set
{
TaxRate = value;
}
}

... blir rekursiv...

gör om till :

public double TaxRate
{
get;
set;
}

samma sak med ItemType (som du inte använder än)

mvh
Peter

PS. Det finns en hel del andra fel med koden också, men börja med dessa och kör i debuggern så har du iallafall kommit vidare. DS


Svara

Sv: C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-21 08:57:24 - Cecilia Wirén

Detta borde fungera som du vill. Kom gärna med frågor om koden, har ändrat en del.

class Product
    {

        static void Main(string[] args)
        {
            Product objGetReceipt = new Product();
            objGetReceipt.PrintReceipt();
            Console.ReadLine();
        }

        private string Name;  // Name of the product
        private double Price; // Price of the product
        private int UnitCount;    // Unit count
        private Boolean FoodItem;  // FoodItem y/n
        private double TaxRate;   

        public void ReadInput()
        {
            Console.Write(" Product name: ");
            Name = Console.ReadLine();
            Console.Write(" Product price: ");
            Price = Convert.ToDouble(Console.ReadLine());
            Console.Write(" Unit count: ");
            UnitCount = Convert.ToInt32(Console.ReadLine());
            Console.Write(" Food item y/n: ");
            String IsFood;
            IsFood = Console.ReadLine();
            if (IsFood.Equals("y"))
                FoodItem = true;
            if (IsFood.Equals("n"))
                FoodItem = false;
        }

        private void GetTaxrate()
        {
            if (FoodItem)
                TaxRate = 0.12;
            else
                TaxRate = 0.25;
        }

        private void GetValues()
        {
            ReadInput();
            GetTaxrate();
        }

        private void PrintReceipt()
        {
            GetValues();
            // Total price without VAT
            double iTotalPrice = UnitCount * Price;
            // Total VAT
            double iTax = TaxRate * iTotalPrice;
            // Total amount with VAT
            double iTotalAmount = iTax + iTotalPrice;

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine(" ------------------------------------------- ");
            Console.WriteLine(" Product name: \t\t\t" + Name);
            Console.WriteLine(" Total price: \t\t\t" + Price);
            Console.WriteLine(" Item count: \t\t\t" + UnitCount);
            Console.WriteLine();
            Console.WriteLine(" Food item: \t\t\t" + FoodItem.ToString());
            Console.WriteLine();
            Console.WriteLine(" Total VAT: \t\t\t" + iTax);
            Console.WriteLine(" Total amount: \t\t\t" + iTotalAmount);
            Console.WriteLine(" ------------------------------------------- ");
        }


    }


Svara

Sv:C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-22 10:03:55 - Torbjörn Karlsson

Hej Cecilia
Ursäkta mitt sena svar

Ser jättebra ut.
Stort tack för hjälpen

Jag kommer garanterat tillbaka med nya frågor snart :-)

mvh
Torbjörn


Svara

Sv: C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-22 17:11:24 - Torbjörn Karlsson

En sista fråga i denna tråd..

Hur skapar jag en instans av en egen Class. som finns i (ex TaxRate.cs).

I det fall jag skulle vilja separera tex. metoden GetTaxRate (i min kod i denna tråd) och lägga den i en egen klass som heter TaxRate.cs separat från Product klassen som ligger i Product.cs.

Det verkar inte räcka med att försöka instansiera genom ex. Product GetValues = new Product.

Jag begär inte att någon skall skriva hela klassen åt mig, bara några tips på vägen.

Jag har 2 filer som skall utföra detta:
Product.cs Skall skicka värden till TaxRate
TaxRate.cs Tar emot och utför momsberäkning av inkomna värden från Product.cs




Svara

Sv:C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-24 00:24:09 - Peter Andersson

Eftersom du inte har nån egen konstruktor finns en default-konstruktor utan argument.

Product p = new Product();
p.GetValues();

osv



Svara

Sv: C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-24 20:00:06 - Torbjörn Karlsson

Hittade felet.

Bägge klasserna måste ligga i samma namespace.


mvh
Torbjörn


Svara

Sv:C# Nybörjarhjälp eftersökes .......

Postades av 2009-01-25 14:15:26 - Jonas Sjöblom

Om den ligger i en annan namespace borde du kunna skriva

Products.Product p = new Products.Product();

om Products är namnet på namespacen dvs.

ett annat sätt är att lägga till

using Products;

sedan kan du använda den som om den låg i samma namespace.


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 699
27 958
271 741
669
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies