|
That's what I was going to suggest, but that kinda hides functionality, and if you're going to create those assemblies, why not just put them in your app?
We use them where I work, but they were implemented years ago, and I'm not even sure where the source code is.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
#realJSOP wrote: if you're going to create those assemblies, why not just put them in your app? Because there may be many apps. You may want some functions to carry out e.g. consistency checking (beyond what you can set up in the SQL schema) regardless of which application is used.
Think of such code as belonging to the schema, not to the data.
|
|
|
|
|
Question no 2
There are three seating categories at an athletic stadium. For a baseball game,Class A seats cost $15 each, Class B seats cost $12 each, and Class C seats cost $9 each. Create an application that allows the user to enter the number of tickets sold for each class. The application should be able to display the amount of income generated from each class of ticket sales and the total revenue generated. Write code for the Calculate Revenue, Clear and Exit button.Clear button should clear contents of all textboxes and lables.
|
|
|
|
|
No, we are still not going to do your homework.
|
|
|
|
|
We are still more than willing to help those that are stuck: but that doesn't mean that we are here to do it all for you! We can't do all the work, you are either getting paid for this, or it's part of your grades and it wouldn't be at all fair for us to do it all for you.
So we still need you to do the work, and we will help you when you get stuck. That doesn't mean we will give you a step by step solution you can hand in!
Start by explaining where you are at the moment, and what the next step in the process is. Then tell us what you have tried to get that next step working, and what happened when you did.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Dammit, when I completed this exercise in my head, it told me that I had a syntax error on line 32. Darn. I have to debug my head now.
|
|
|
|
|
Put a breakpoint on Line 30: A shot of tequila.
Carefully examine all variables: A tot of whisky per variable.
Single step your code: G&T.
Repeat until code is fixed or you are unable to concentrate.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Doh! I should have thought of that. Good call.
|
|
|
|
|
You show no attempt to solve the problem yourself, you have no question, your main effort is pasting the requirement, you just want us to do your HomeWork.
We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
Question: 1
Suppose using controls in Visual Studio you have developed the layout for a calculator in design mode as shown
below, and given names of button Add, Subtract, Multiply and divide as Plusbtn, Subbtn, Mulbtn and Divbtn
respectively. Names for TextBox labeled First Number, Second Number and Result are textBox1, textBox2 and
textBox3 respectively. If a number is entered in TextBox1 and TextBox2, clicking the buttons should produce result
of respective operation in TextBox3. Complete the code
|
|
|
|
|
No, we are NOT going to do your homework for you.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
We are more than willing to help those that are stuck: but that doesn't mean that we are here to do it all for you! We can't do all the work, you are either getting paid for this, or it's part of your grades and it wouldn't be at all fair for us to do it all for you.
So we need you to do the work, and we will help you when you get stuck. That doesn't mean we will give you a step by step solution you can hand in!
Start by explaining where you are at the moment, and what the next step in the process is. Then tell us what you have tried to get that next step working, and what happened when you did.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Okay, I've completed the code in my head. That was fun. Now what?
|
|
|
|
|
Write an article on it?
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
If I was doing a course that asked me to create text boxes called textBox1, textBox2 etc, I would find a better course.
|
|
|
|
|
You show no attempt to solve the problem yourself, you have no question, your main effort is pasting the requirement, you just want us to do your HomeWork.
We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
I have been having trouble finding a good compiler for my iPad.
|
|
|
|
|
You won't find a compiler for C# on iPad - Apple are rather restrictive, and use ObjectiveC for apps.
You can use C# to write for Apple devices, but you will need Xamarin to do it - it's included in the last couple of versions of Visual Studio.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I need to parse numerical expressions, e.g. (UInt32)(512 * 1024) that we can assume comes from a WinForm TextBox during runtime. I tried using the following:
DataTable loDataTable = new DataTable();
DataColumn loDataColumn = new DataColumn("Eval", typeof(double), expression);
loDataTable.Columns.Add(loDataColumn);
loDataTable.Rows.Add(0);
return (UInt32)(double)(loDataTable.Rows[0]["Eval"]);
but this doesn't work because of the cast. So instead I tried the following, which is based on possible to execute code contained in a string ? - C# / C Sharp[^] :
public static bool parseDifficultExpression(string difficultExpression, out UInt32 parsedValue)
{
try
{
string[] usingList = new string[] { "System",
"System.Text",
"System.Diagnostics" };
string methodAsString = " returnValue = " + difficultExpression + ";";
string notUsed = "";
parsedValue = (UInt32)Utilities.executeMethodAsString(usingList, methodAsString, notUsed, typeof(UInt32));
return true;
}
catch (Exception)
{
parsedValue = 0xFFFFFFFF;
return false;
}
}
public static object executeMethodAsString(string[] usingList, string methodAsString, object args, Type returnType)
{
string[] importList = new string[] { "System.dll" };
string namespaceName = "myNameSpace";
string className = "myClass";
string methodName = "myMethod";
CodeMemberMethod pMethod = new CodeMemberMethod();
pMethod.Name = methodName;
pMethod.Attributes = MemberAttributes.Public;
pMethod.Parameters.Add(new CodeParameterDeclarationExpression(args.GetType(), "args"));
pMethod.ReturnType = new CodeTypeReference(typeof(UInt32));
string completeMethod =
returnType + " returnValue = new " + returnType + "();" + "\r\n" +
"try {" + "\r\n" +
methodAsString + "\r\n" +
"} catch {" + "\r\n" +
" returnValue = new " + returnType + "();" + "\r\n" +
"}" + "\r\n" +
"return returnValue;";
pMethod.Statements.Add(new CodeSnippetExpression(completeMethod));
CodeTypeDeclaration pClass = new CodeTypeDeclaration(className);
pClass.Attributes = MemberAttributes.Public;
pClass.Members.Add(pMethod);
CodeNamespace pNamespace = new CodeNamespace(namespaceName);
pNamespace.Types.Add(pClass);
for (int i = 0; i < usingList.Length; i++)
{
pNamespace.Imports.Add(new CodeNamespaceImport(usingList[i]));
}
CodeCompileUnit pUnit = new CodeCompileUnit();
pUnit.Namespaces.Add(pNamespace);
CompilerParameters pParams = new CompilerParameters(importList);
pParams.GenerateInMemory = true;
CompilerResults pResults = (new CSharpCodeProvider()).CreateCompiler().CompileAssemblyFromDom(pParams, pUnit);
if ((pResults.Errors != null) && (0 < pResults.Errors.Count))
{
foreach (CompilerError pError in pResults.Errors)
{
Debug.WriteLine(pError.ToString());
}
return null;
}
else
{
object typeInstance = pResults.CompiledAssembly.CreateInstance(namespaceName + "." + className);
MethodInfo methodInfo = typeInstance.GetType().GetMethod(methodName);
return methodInfo.Invoke(typeInstance, new object[] { args });
}
} This works fine, except that the line
CompilerResults pResults = (new CSharpCodeProvider()).CreateCompiler().CompileAssemblyFromDom(pParams, pUnit); is extremely slow (about 80 ms) to execute. Does anybody know a workaround to achieve what I want in fast execution time?
|
|
|
|
|
Have you considered using an expression evaluator? A Tiny Expression Evaluator[^] for example.
Might be quicker than loading a whole compiler each time you want an expression ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
It doesn't seem to be able to handle casts either, whenever I cast something in the "command prompt" (started by double-clicking TinyExe.exe) it gives me "Unexpected token '' found. Expected EOF".
|
|
|
|
|
I tried to speed it up by doing all (several hundred) my conversions in the same method, so that instead of compiling several hundred times I compile just once but the method will be a lot larger. Well, this works fine until there's an illegally formatted string which creates a compile error... It is really so impossible to interpret casts in a fast way?
|
|
|
|
|
I also tried the following, which is based on .net assembly - C# CompilerResults GenerateInMemory? - Stack Overflow[^], but it appears to compile even slower (I measured 208 ms):
public static class MyClass
{
public static void Example()
{
Stopwatch watch = System.Diagnostics.Stopwatch.StartNew();
dynamic instance = CompileSource(
"namespace Test" +
"{" +
" public class DynamicCompile" +
" { " +
" public void logHelloThere()" +
" {" +
" System.Diagnostics.Debug.WriteLine(\"Hello there\");" +
" }" +
" }" +
"}").TryLoadCompiledType("Test.DynamicCompile");
instance.logHelloThere();
long elapsedMs = watch.ElapsedMilliseconds;
Debug.WriteLine("Elapsed: " + elapsedMs);
}
public static CompilerResults CompileSource(string sourceCode)
{
var csc = new CSharpCodeProvider(
new Dictionary<string, string>() { { "CompilerVersion", "v4.0" } });
var referencedAssemblies =
AppDomain.CurrentDomain.GetAssemblies()
.Where(a => !a.FullName.StartsWith("mscorlib", StringComparison.InvariantCultureIgnoreCase))
.Where(a => !a.IsDynamic)
.Select(a => a.Location)
.ToArray();
var parameters = new CompilerParameters(referencedAssemblies);
return csc.CompileAssemblyFromSource(parameters, sourceCode);
}
public static object TryLoadCompiledType(this CompilerResults compilerResults, string typeName, params object[] constructorArgs)
{
if (compilerResults.Errors.HasErrors)
{
Debug.WriteLine("Can not TryLoadCompiledType because CompilerResults.HasErrors");
return null;
}
var type = compilerResults.CompiledAssembly.GetType(typeName);
if (null == type)
{
Debug.WriteLine("Compiled Assembly does not contain a type [" + typeName + "]");
return null;
}
return Activator.CreateInstance(type, constructorArgs);
}
}
|
|
|
|
|
You're creating a rather poor interpreter; it's not going to run like a compiler. I think you need a "calculator" class.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
There are several different ways to evaluate arithmetic expressions (just google), but all the ones I've tried have not been able to handle a simple cast, e.g.:
1 + (int)1
|
|
|
|
|