I'm currently writing a program in c# and I'm practicing using integers. I'm trying to make it so the Written Line comes out with the int at the end. It doesn't give me the outcome I want though, and when I searched on google it didn't give me the solution I was looking for.
Code:
Random rnd = new Random();
int Pi = rnd.Next(1,5);
Console.WriteLine("Checking 'Pi' value...");
Console.Beep(37,1000);
Console.WriteLine("Pi value found. Pi = ",Pi);
Console.ReadKey();
Outcome:
Checking 'Pi' value...
Pi value found. Pi =
If you know anything I can try, please let me know.
CodePudding user response:
There are many ways to do this:
// placeholder
Console.WriteLine("Pi value found. Pi = {0}",Pi);
// concatenation
Console.WriteLine("Pi value found. Pi = " Pi.ToString());
// interpolation
Console.WriteLine($"Pi value found. Pi = {Pi}");
// StringBuilder
var sb = new StringBuilder("Pi value found. Pi = ").Append(Pi);
Console.WriteLine(sb);
// multiple writes
Console.Write("Pi value found. Pi = ");
Console.WriteLine(Pi);
CodePudding user response:
Console.WriteLine("Pi Value found. Pi =" Pi);
CodePudding user response:
There are multiple ways of doing this.
Console.WriteLine("Pi Value found. Pi = " Pi);
, which is a shortened version ofConsole.WriteLine("Pi Value found. Pi = " Pi.ToString());
.
This works because operators like do different things depending on what you use them on. C# automatically adds ToString()
to your integer, converting it to, well, a string. This means what you're actually passing into Console.WriteLine
now looks like this (assuming your random number generation generated the number 4 in this case: "Pi Value found. Pi = " "4"
. Notice the quotation marks around the 4 - you now simply have two strings. For two strings, the " "-Operator concatenates them, creating the single string "Pi Value found. Pi = 4"
in this case.
Console.WriteLine($"Pi Value found. Pi = {Pi}")
orConsole.WriteLine("Pi Value found. Pi = {0}", Pi)
(although not quite the same technically, they're different ways of writing essentially the same thing for your purposes)
This is string interpolation. Essentially what you're doing with this is defining a template to format the string by - done either directly by the compiler, which is the $-method of doing it (see here for more details), or by providing a template that Console.WriteLine passes into String.Format for you.
It doesn't really matter which of these you choose, they are all valid ways of achieving the same goal.
CodePudding user response:
string.Format(@"The value of Pi is = {0}", pi);