|
Try something and post any issues you run into here.
|
|
|
|
|
I would suggest reading an excellent book called CLR Via C# by Jeffrey Ritcher.
You'll get good understanding about C# features, its compiler, some IL code examples, CLR (JIT) mechanisms.
Its easy to read and understand.
It is must have for a C# developer.
Be a good professional who shares programming secrets with others.
|
|
|
|
|
|
I have posted this as a Suggestion and its related to C#.
Whats wrong in that, please explain?
I'm getting downvotes because of your comment.
Atleast tell me how can I delete this comment.
Be a good professional who shares programming secrets with others.
|
|
|
|
|
This is a technical question and answer forum, as detailed in the link to the posting guidelines that I gave you. If people start posting one line recommendations to books that they have read then it will soon be difficult to find the proper questions. If you have a book recommendation, then write a proper review and post it in the http://www.codeproject.com/KB/book-reviews/[^] section.
Use the best guess
|
|
|
|
|
Okay. Then how can I remove this Suggestion?
But programming related suggestions are allowed, right?
Be a good professional who shares programming secrets with others.
|
|
|
|
|
Mohammed Hameed wrote: how can I remove this Suggestion? You can't now.
Mohammed Hameed wrote: But programming related suggestions are allowed, right? No, this forum is for programming related questions. If you have any tips that you want to pass on, then write it up as a Tip or Article, and post it in the Articles Section[^].
Use the best guess
|
|
|
|
|
Okay, thanks for your inputs.
Actually, I misunderstand while posting this suggestion because at the top there is a Message Type options such as General, News, Suggestion, Question, Answer, Joke, and Rant. Hence I thought its allowed to post suggestions as well.
Anyhow next time onwards I'll more cautious (I assume smileys are allowed )
Be a good professional who shares programming secrets with others.
|
|
|
|
|
Its probably something to do with my RegEx but I can't get it to be case insensitive.
My regex is (\xAB" + col.ColumnName + "\xBB) (The \xAB and \xBB are the double chevron quote chars)
So my code block is:
Regex regex = new Regex("(\xAB" + col.ColumnName + "\xBB)", RegexOptions.IgnoreCase);
docText = regex.Replace(docText, ds.Tables[0].Rows[0][col].ToString());
I've also tried:
docText = Regex.Replace(docText, "(\xAB" + col.ColumnName + "\xBB)", ds.Tables[0].Rows[0][col].ToString(), RegexOptions.IgnoreCase);
What have I ballsed up? Something with the literal I imagine.
|
|
|
|
|
Easy enought to build a simple test program that verifies the regex, and only the regex.
That of course would not have 'ds', 'Tables', etc.
|
|
|
|
|
mmm, it was nothing to do with the regex at all.
Word had inserted some weird Bookmark XML in the middle of my text I was looking for. So the string I was looking for never appeared as a complete string in the xml.
Can't find how to show these hidden things in Word though
|
|
|
|
|
I've been at this for two days now.
My code compiles just fine, the compiler sort of kind of understood what I was trying to do.
Because I didn't comment on any of my code, I'll do my best to do it right here.
Ask the user for a number.
Preset number back to the screen and ask if it is correct.
If it is correct, move on to next block of code.
If that is not correct, clear the screen and start over.
If the first number was correct, ask for the second number.
Present second number back to the screen and ask if it is correct.
If it is correct, move on to the next block of code.
If it is not correct, clear the screen and start over by asking for the second number again.
Apparently, I can't use the integer value returned by the method number one or the integer value returned by the method number two.
Console.WriteLine(Math.Pow(firstUserNum, secondUserNum));
I renamed the variables and attempted to use those instead, that didn't work either.
Then I tried to explicitly invoke by using:
Console.WriteLine(Math.Pow(Program.CalculatetothePowerof.firstUserNum.firstUserIntValue, then same thing here));
I know I'm so close, yet so far away…
Here is my code:
(you old pros, don't laugh when you compile this and run it… I said don't laugh!)
<pre lang="c#">
using System;
namespace CalculatetothePowerof
{
class Program
{
static void Main()
{
tellUserFirstTime();
firstUserNum();
YesOrNo();
tellUserSecondTime();
secondUserNum();
secondYesOrNo();
Console.ReadKey();
}
private static void tellUserFirstTime()
{
Console.Write("Enter your first number:\n");
}
private static int firstUserNum()
{
int firstUserIntValue;
string userValue;
userValue = Console.ReadLine();
Console.WriteLine("You entered {0}?\n", userValue);
firstUserIntValue = Convert.ToInt32(userValue);
return firstUserIntValue;
}
private static void YesOrNo()
{
string userAns;
Console.WriteLine("If that is correct, press the letter y.\nIf it's not correct, press the letter n.");
userAns = Console.ReadLine();
if (userAns == "y")
tellUserSecondTime();
if (userAns == "n")
{
Console.WriteLine("We'll start over.\nPress any key to start over.");
Console.ReadKey();
Console.Clear();
tellUserFirstTime();
}
else if (userAns != "y" || userAns != "n")
{
Console.WriteLine("You must press lowercase y\nOr\nLowercase n\nWe'll start over again\nPress any key to start over");
Console.ReadKey();
Console.Clear();
tellUserFirstTime();
}
}
private static void tellUserSecondTime()
{
Console.Write("Enter your second number:\n");
}
private static int secondUserNum()
{
int secondUserIntValue;
string secondUserValue;
secondUserValue = Console.ReadLine();
Console.WriteLine("You entered {0}?\n", secondUserValue);
secondUserIntValue = Convert.ToInt32(secondUserValue);
return secondUserIntValue;
}
private static void secondYesOrNo()
{
string userAns;
Console.WriteLine("If that is correct, press the letter y.\nIf it's not correct, press the letter n.");
userAns = Console.ReadLine();
if (userAns == "y")
Console.WriteLine("Widmark, you're a genius!");
//calcFirstAndSecondNum();
if (userAns == "n")
{
Console.WriteLine("We'll start over.\nPress any key to start over.");
Console.ReadKey();
Console.Clear();
tellUserSecondTime();
}
else if (userAns != "y" || userAns != "n")
{
Console.WriteLine("You must press lowercase y\nOr\nLowercase n\nWe'll start over again\nPress any key to start over");
Console.ReadKey();
Console.Clear();
tellUserSecondTime();
}
}
/*private static void calcFirstAndSecondNum()
{
Console.WriteLine(Math.Pow(firstUserNum, secondUserNum));
}*/
}
}
</pre>
<a href="http://www.widmarkrob.com">My Coding Journey</a>
|
|
|
|
|
Your methods are returning their values, but you are not storing them anywhere. You need to save th returned variables in a local variable in your main method. Something like:
static void Main()
{
tellUserFirstTime();
int firstValue = firstUserNum();
YesOrNo();
int secondValue = secondUserNum();
...
}
However, it would be better to reuse the same methods to capture a value; the book reference I gave you in my other message shows how to do it for a simple program.
BTW: uncheck the setting in your messages (or profile) that says "Treat my content as plain text, not as HTML".
Use the best guess
|
|
|
|
|
My exercise/homework assignment:
Build a C# program/application to find the power of the first number with the second number and get these numbers from the keyboard input.
I was able to successfully build this in one code block under the main method.
To me, it wasn't exactly boring because I'm just starting out.
To you old pros, you'll probably rolling your eyes.
I know there's probably some shortcut techniques I could have used, but… I'm just a beginner, bear with me.
yOrn = Console.Read();
That is the line where I'm getting stuck.
Visual Studio's error is:
cannot implicitly convert type 'int' to ' char'. And explicit conversion exists(are you missing a cast?)
Smart aleck compiler anyway.
No! I am not missing a cast. Am I?
At least I thought I didn't need a cast, it's in a new code block and its own method.
I was also thinking (dangerous I know).
For each method, minus the main method.
Creating separate classes with their own methods, that way there is no mistaking on the intention of each method?
Would that take care of the compiler asking me if I'm missing a cast?
<pre lang="c#">
using System;
namespace CalculatetothePowerof
{
class Program
{
static void Main()
{
tellUser();
firstUserNum();
YesOrNo();
}
private static void tellUser()
{
Console.Write("Enter your first number:\n");
}
private static void firstUserNum()
{
int userIntValue;
string userValue;
userValue = Console.ReadLine();
Console.WriteLine("You entered {0}?\n", userValue);
userIntValue = Convert.ToInt32(userValue);
}
private static void YesOrNo()
{
Console.WriteLine("If that is correct, press the letter y.");
char yOrn;
yOrn = Console.Read();
//Console.ReadKey();
}
}
}
</pre>
<a href="http://www.widmarkrob.com">My Coding Journey</a>
|
|
|
|
|
WidmarkRob wrote: Would that take care of the compiler asking me if I'm missing a cast?
No.
look at the variable type userValue in firstUserNum method and compare it to type yOrn, it's not a string. So the compiler is letting you know there is a problem. If you know your type to be correct, use a cast.
But in this case it isn't, then you need to change the type of yOrn to string, which is the correct type for use with Console.ReadLine().
|
|
|
|
|
Okay, I see you want me to change the variable type.
I should probably create two predefined string variables so there can only be two options.
I'm also thinking that if statement, and then else if… Then moving on to the next number.
Sound right?
<a href="http://www.widmarkrob.com">My Coding Journey</a>
|
|
|
|
|
I change the data type from char to string… That didn't work either
<a href="http://www.widmarkrob.com">My Coding Journey</a>
|
|
|
|
|
D'oh
I forgot to add:
Line
yOrn = Console.ReadLine();
Now it's not complaining.
Thank you
<a href="http://www.widmarkrob.com">My Coding Journey</a>
|
|
|
|
|
Glad you got it working.
You can still get char from string using
yOrn[0]
but you can see the whole string character-by-character using
example^
|
|
|
|
|
Okay, now I'm just starting to build on top of what I've already written.
I get blue squiggly lines underneath:
break;
is it just waiting for me to write some more code so it has something to break to?
I haven't written any more code, yet…
<pre lang="c#">
private static void YesOrNo()
{
string userAns;
Console.WriteLine("If that is correct, press the letter y.\nIf it's not correct, press the letter n.");
userAns = Console.ReadLine();
if (userAns == "y")
{
break;
}
else if(userAns == "n");
{
Console.Clear();
tellUser();
break;
}
//Console.ReadKey();
}
</pre>
<a href="http://www.widmarkrob.com">My Coding Journey</a>
|
|
|
|
|
Nah, that's okay… I'm just practicing creating my own methods. Trying my hardest not to go any further than that for now.
Baby steps
Thanks
<a href="http://www.widmarkrob.com">My Coding Journey</a>
|
|
|
|
|
|
I downloaded it already, thanks… Just haven't taken a look at it yet.
I spent $85 on a book already, a Benjamin on a lifetime membership with learnvisualstudio.net and trying to watch and learn from some YouTube videos.
If you've been following any of my questions/posts you'll notice I'm slowly starting to dig in to more advanced features.
Slowly but surely I'm starting to piece things together.
Sometimes I need to stop and ask for directions.
|
|
|
|
|
WidmarkRob wrote: I spent $85 on a book
Use the best guess
|
|
|
|
|