|
hi to all
I need a function have a parameter talking by user return writing this text on rich text box (c#)
i installed speech lib but this file SAPI.dll is not installed
please i'm very need necessary for this function
Thanks for the continued
|
|
|
|
|
|
Hi, I have the code:
using System;
delegate void MyEventHandler();
class MyEvent
{
public event MyEventHandler SomeEvent;
public void OnSomeEvent()
{
if (SomeEvent != null)
SomeEvent();
}
}
class EventDemo
{
static void Handler()
{
Console.WriteLine("Event occurred");
}
static void Main()
{
MyEvent evt = new MyEvent();
evt.SomeEvent += Handler;
if (evt.SomeEvent == null) Console.WriteLine("Ev. nu are nici o metoda in lista");
evt.OnSomeEvent();
}
}
Why in the case of the second if (from Main) I have compiler error: error CS0070: The event ‘ConsoleApplication2.MyEvent.SomeEvent’ can only appear on the left hand side of += or -= (except when used from within the type ‘ConsoleApplication2.MyEvent’)
And in the case of te first if it is OK ?
<div class="signature">tom</div>
|
|
|
|
|
Because that's how events work in C#.
Only the class that defines the event can access it that way; other classes can only add and remove handlers.
However, a common practice with events is for the class to declare a Raise method that will check for null and raise the event. Ideally this method would be private or protected, but you could make it public if you really wanted to. If you are just learning about events that may make some sense, but it's generally not a good idea as it pretty much violates the whole idea of events.
Furthermore, if that does make sense, maybe you just want a regular delegate rather than an event.
We would need to know more about what you are trying to accomplish.
|
|
|
|
|
And how I test the null handler list in Main :
if (evt.SomeEvent == null) Console.WriteLine(“Event refered the null list”);
|
|
|
|
|
you don't.
think what you are trying to do here, you have a class called MyEvent which owns and exposes an event. That class is solely responsible for managing that event, other classes interacting with it are merely listeners
The only point at which an event being null should matter is if you are about to invoke it. The only thing that invokes an event is its owner class and therefore only MyEvent needs to care about SomeEvent being null.
Therefore if you want a console output for an attempt to invoke an event for which no event handler has been attached it should go in the OnSomeEvent method of the MyEvent class
Pedis ex oris
Quidquid latine dictum sit, altum sonatur
|
|
|
|
|
You shouldn't, so you can't directly, at best the class can allow you to do so indirectly, but that's not how events are meant to work.
|
|
|
|
|
|
|
Don't cross post. People will already see your question.
|
|
|
|
|
Doing this is considered posting the same question in multiple forums and is frowned upon.
Instead of getting more attention to your question, chances are people will now ignore it.
|
|
|
|
|
i want too write an array that contain 2000 product info
the product has id and discribtion and number of unit
the number of unit should be changeable
thank u all for your help
|
|
|
|
|
That's very nice, now what is the problem exaxtly?
What did you try already?
See here[^] on how to ask questions in this forum.
V.
|
|
|
|
|
I suspect you want to define a class to hold info on a product and then use a List (not an array) of that class.
|
|
|
|
|
This has a big smell of homework about it, so I won't give you code!
Create a class (called Product ) which has public properties Id , Description and Count
The first two properties may not require a public set method, just a get so you should make these private or protected , but the final one will require both as public. You could use a backing field, or allow it to be automatic.
It would be a good idea to provide a constructor which takes three parameters and sets the appropriate properties.
You can then create an array of the class which has sufficient elements or (preferably) a List which meaans that you do not have to worry about the number of elements at any point.
To declare an array of any class:
MyClass[] myArrayOfClass = new MyClass[2000];
To declare it as a List:
List<MyClass> myListOfClass = new List<MyClass>();
Neither of these allocate any actual instances of the class itself - just the structures that will store them.
In both cases, you will have to allocate each instance with the new keyword, and add it into the appropriate structure.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
OriginalGriff wrote: This has a big smell of homework about it, so I won't give you code!
Would you give code if it was not homework?
Why would homework be different than work? As long as they tried and searched themselves I find a homework question as valid as a work question.
V.
|
|
|
|
|
Yes - and I do. I will even give code if it is homework and they have made a show of trying to do it and failed.
But when it is clearly homework and they haven't done anything at all, no - I will give a fair amount of help (as I think I did here) but the only way they will learn it properly is to do it themselves. Just giving them the code doesn't help them to learn, and gives the teacher the wrong idea about how well his students are picking up the course.
Otherwise, they could just get us to do all the homework, qualify by learning nothing, and then get a job working beside you, or me. I don't want that, and I don't think many people do.
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
100% agree
V.
|
|
|
|
|
V. wrote: I find a homework question as valid as a work question
I don't, but that doesn't matter here, this question is concerned with very basic concepts that even a hobbyist should already know.
|
|
|
|
|
if(question == QuestionType.Homework)
{
knowledgeGained = DoItYourself();
}
else
{
you.ProvidedMoreInfo += (sender, args) => { us.ProvideInsightOn(question); }
}
Pedis ex oris
Quidquid latine dictum sit, altum sonatur
|
|
|
|
|
You can use a collection like a List or a Dictionary .
|
|
|
|
|
I thought I understood how Out worked until I found out that you could pass a value through to the function with it.
In other words the out parameter can be assigned before the function call.
The compiler insists that the parameter is assigned before return even though it could have been assigned prior to the function call.
I suspect the answer is no - but is there any way to test if the parameter is assigned and if so get it's value. This would be useful.
|
|
|
|
|
If you declare your method with an out parameter you are stating that the method will set that parameter, no matter whether the parameter was already set or not.
"
Although variables passed as out arguments do not have to be initialized before being passed, the called method is required to assign a value before the method returns.
"
Could you please tell us more about what you are trying to do?
|
|
|
|
|
Maybe you want a ref parameter, not an out one? Out, by definition, means that the method is expected to assign something into it and it may not be used for input.
|
|
|
|
|
Even if you pass the out parameter with a value it will need to be assigned a value in the function before being accessed, but if you feel like you want to assign it a value before rather use ref not out.
"I cannot confirm my earlier denial and I cannot deny my earlier confirmation and DON'T QUOTE ME ON THAT"
|
|
|
|