|
protected means that the current class and any class derived from it can call that method/property. That's a basic question which you really should have been able to answer by looking at the documentation.
|
|
|
|
|
|
Actually, you want to keep the method/property/member variable private . But when you need to access it from a derived class, so you change that to protected . Other classes which do not derive from the original class still cannot see it.
|
|
|
|
|
I have a windows form project that I started before installing the SharpGL extension.
The SharpGL library works fine if I create a SharpGL project. But when I try to add a SharpGL control in my project, it says that it cannot find the namespace "OpenGLControl". Having in mind that I added all the references, it's kind of strange, but it's true.
When I type SharpGL.OpenGLControl, it doesn't appear in the autocomplete.
How can I add an OpenGLControl without starting my project from scracth?
|
|
|
|
|
Hi everyone.
I wanna design an expert system with clips (inference engine)
and c#(user interface). My problem is integrating clips with c#. I used clipsnet and clipslib but I couldn'd make any connection between these 2 languages. Infact I couldn't load my clips file in c#!
public CLIPSNet.DataTypes.Multifield h = new CLIPSNet.DataTypes.Multifield();
private void Form1_Load(object sender, EventArgs e)
{
CLIPSNet.Environment j = new CLIPSNet.Environment();
int i = j.Load(@"..\..\..\instance.clp");
j.Reset();
would u do me a favor and help me to solve it's problem?
what should I do?
|
|
|
|
|
Normally I would tell you to take this up with the manufacturers of the original library, as they would be best placed to help you, however I would suggest that the problem is down to the path being wrong in your Load method. Is there some reason that you aren't copying this file to the build output directory and loading it from there? When you deploy your application, I would suspect that the relative path you have there would be wrong.
|
|
|
|
|
thank u.
what do u mean by build output directory?
|
|
|
|
|
what do u mean by build output directory?
thank u.
|
|
|
|
|
When you do a build in Visual Studio, it typically goes into the Release or Debug directory. This is the build output directory.
Could you please stop using text speak? I find it painful to read, and it has no place in a professional programming site.
|
|
|
|
|
I have a console app in C# that runs for a very long time. Basically, it loops through from one to a brazillian for days on end. Depending on conditions met, it will print certain output. Nothing unusual there.
Is it possible to press a key and have it tell me which loop index I'm in? I do not want to programmatically print the index every Nth time or second. I would rather have it wait until I press a key and have it spit it out.
I guess from a threaded Windows app, this would be easier. I'm trying to see if there's a way to do it from a command-line app on-demand, without having to do it iteratively.
|
|
|
|
|
You could always use Console.KeyAvailable to do this. This is a none blocking method, so you could use that to output the variable, e.g.
if (Console.KeyAvailable)
Console.WriteLine("Currently at index {0}", index);
|
|
|
|
|
Perfect, almost!
I had to add two more lines arround the WriteLine command:
Console.Write("\b"); and
Console.ReadKey(false);
The former deletes (backspaces) the character entered, while the latter stops printing a million times. I could also only accept ENTER for printing.
|
|
|
|
|
Rather than wring a backspace to the console, which I think can be problematic in certain situations, you could use the ReadKey(true) function:
if (Console.KeyAvailable)
{
while (Console.KeyAvailble) Console.ReadKey(true);
Console.WriteLine("At index {0}", index);
}
|
|
|
|
|
Thanks, much better! My method was working without echoing in Win XP, but echoing in Win 7. This way fixes that.
Small typo, Console.KeyAvailable.
|
|
|
|
|
I'm trying for manytime to do this... I don't get how to write a Main class which in it an int List gets values from the user, here is what I did so far... It makes a Run Time error:
int x;
List<int> lis = new List<int>();
Node<int> chou = lis.GetFirst();
x = int.Parse(Console.ReadLine());
lis.GetFirst().SetInfo(x);
while (chou.GetInfo() != -1)
{
x = int.Parse(Console.ReadLine());
chou.SetInfo(x);
chou = chou.GetNext();
}
All I need to know is what is the correct code.. Thank u very much תודה רבה
|
|
|
|
|
I would use:
List<int> list = new List<int>();
while (true)
{
int x;
if (int.TryParse(Console.ReadLine(), out x))
{
if (x < 0)
{
break;
}
list.Add(x);
}
}
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
|
|
|
|
|
there is a program of a document manager that pushes the document to a Queue
There are 3 questions on 3 different threads, base on the same program
this is the THIRD one
the program is
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace scratchpad3
{
class Program
{
public static void Main()
{
var dm = new DocumentManager<Document>();
dm.AddDocument(new Document("Title A", "Sample A"));
dm.AddDocument(new Document("Title B", "Sample B"));
dm.DisplayAllDocuments();
if (dm.IsDocumentAvailable)
{
Document d = dm.GetDocument();
Console.WriteLine(d.Content);
Console.Read();
}
}
}
public class DocumentManager<T>
where T : IDocument
{
private readonly Queue<T> documentQueue = new Queue<T>();
public void AddDocument(T doc)
{
lock (this)
{
documentQueue.Enqueue(doc);
}
}
public bool IsDocumentAvailable
{
get { return documentQueue.Count > 0; }
}
public T GetDocument()
{
T doc = default(T);
lock (this)
{
doc = documentQueue.Dequeue();
}
return doc;
}
public void DisplayAllDocuments()
{
foreach (T doc in documentQueue)
{
Console.WriteLine(doc.Title);
}
}
}
public interface IDocument
{
string Title { get; set; }
string Content { get; set; }
}
public class Document : IDocument
{
public Document()
{
}
public Document(string title, string content)
{
this.Title = title;
this.Content = content;
}
public string Title { get; set; }
public string Content { get; set; }
}
}
Q3) Let us take a view of this part of the coding:-
public void AddDocument(T doc) // /
|
|
|
|
|
This has nothing whatsoever to do with pass by reference[^]. T just happens to be a reference type, which just means that the thing being passed by value is itself a reference. And what's a "reference variable" supposed to be anyway?
Member 9939423 wrote: Why this anomaly? What anomaly? Nothing out of the ordinary is going on here.
|
|
|
|
|
thank you for answering, at first
What i mean is that, when we declare a type we do :
<class_name> var; //----------------------------------------(1)
Here var is a reference variable
now when we objectify
var = new <class_name>(); //---------------------------------(2)
a new area is defined -- this is called object
when we say
T doc
what i mean is that is it a reference variable like (1)
or an object creation like (2)
|
|
|
|
|
Neither, it isn't "doing" anything. A declaration "does" nothing.
When you pass that thing into that method, no object is created, but the reference is copied.
|
|
|
|
|
there is a program of a document manager that pushes the document to a Queue
There are 3 questions on 3 different threads, base on the same program
this is the 2nd question
the program is :-
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace scratchpad3
{
class Program
{
public static void Main()
{
var dm = new DocumentManager<Document>();
dm.AddDocument(new Document("Title A", "Sample A"));
dm.AddDocument(new Document("Title B", "Sample B"));
dm.DisplayAllDocuments();
if (dm.IsDocumentAvailable)
{
Document d = dm.GetDocument();
Console.WriteLine(d.Content);
Console.Read();
}
}
}
public class DocumentManager<T>
where T : IDocument
{
private readonly Queue<T> documentQueue = new Queue<T>();
public void AddDocument(T doc)
{
lock (this)
{
documentQueue.Enqueue(doc);
}
}
public bool IsDocumentAvailable
{
get { return documentQueue.Count > 0; }
}
public T GetDocument()
{
T doc = default(T);
lock (this)
{
doc = documentQueue.Dequeue();
}
return doc;
}
public void DisplayAllDocuments()
{
foreach (T doc in documentQueue)
{
Console.WriteLine(doc.Title);
}
}
}
public interface IDocument
{
string Title { get; set; }
string Content { get; set; }
}
public class Document : IDocument
{
public Document()
{
}
public Document(string title, string content)
{
this.Title = title;
this.Content = content;
}
public string Title { get; set; }
public string Content { get; set; }
}
}
Please refer to line indicated as "//************************1
"
& also Please refer to line indicated as "//************************2"
Q2) Here if we note this :
public class DocumentManager<T>
where T : IDocument {// code}
var dm = new DocumentManager<Document>();
when T is constrained for type IDocument , how could we manage:
<Document
>
|
|
|
|
|
there is a program of a document manager that pushes the document to a Queue
There are 3 questions on 3 different threads, base on the same program
the program is :-
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace scratchpad3
{
class Program
{
public static void Main()
{
var dm = new DocumentManager<Document>();
dm.AddDocument(new Document("Title A", "Sample A"));
dm.AddDocument(new Document("Title B", "Sample B"));
dm.DisplayAllDocuments();
if (dm.IsDocumentAvailable)
{
Document d = dm.GetDocument();
Console.WriteLine(d.Content);
Console.Read();
}
}
}
public class DocumentManager<T>
where T : IDocument
{
private readonly Queue<T> documentQueue = new Queue<T>();
public void AddDocument(T doc)
{
lock (this)
{
documentQueue.Enqueue(doc);
}
}
public bool IsDocumentAvailable
{
get { return documentQueue.Count > 0; }
}
public T GetDocument()
{
T doc = default(T);
lock (this)
{
doc = documentQueue.Dequeue();
}
return doc;
}
public void DisplayAllDocuments()
{
foreach (T doc in documentQueue)
{
Console.WriteLine(doc.Title);
}
}
}
public interface IDocument
{
string Title { get; set; }
string Content { get; set; }
}
public class Document : IDocument
{
public Document()
{
}
public Document(string title, string content)
{
this.Title = title;
this.Content = content;
}
public string Title { get; set; }
public string Content { get; set; }
}
}
Please refer to line indicated as "//************************1"
Q1) How would these 2 declarations and its corrosponding objects differ :
i )
IDocument ido = new IDocument();
and
ii)
public class DocumentManager<T> where T : IDocument {// code}
var dm = new DocumentManager<IDocument>(); // pls note this IS A DEVIATION form // the code
|
|
|
|
|
Well, i) doesn't work because IDocument is an interface - which can't be instantiated because there's no implementation of it. It's just a contract.
|
|
|
|
|
In my windown application, I have a listview, which contains two columns. One of the subitem in a row contains the data as below.
"Failed testcase path=C:\temp\test.jpg"
I need to provide hyperlink to only "C:\temp\test.jpg". If I click on the same, it should open the corresponding image.
I tried by changing the property HotTaracking to true.
listView1.HotTracking = true;
But it shows hyperlinks to all the rows in listview.
Is there a way to achieve this?
|
|
|
|
|
I wrote a simple keylooger and i test it on win7 and all things is work successfuly but it dont work on xp system and show this message
"unable to find a version of runtime to run this application " how can i solve this proplem????
c#
|
|
|
|