小编Emb*_*rja的帖子

为什么我不能在结构中初始化我的字段?

我很惊讶我无法在结构中初始化我的字段,为什么会这样?喜欢:

struct MyStruct
{
    private int a = 90;
}
Run Code Online (Sandbox Code Playgroud)

但这是一个complie时间错误.我不知道为什么这是一个问题?请向我解释一下.

c#

4
推荐指数
2
解决办法
1321
查看次数

元组真正的用途是什么?

有人可以解释一下元组真正的用途吗?

c#-4.0

4
推荐指数
1
解决办法
192
查看次数

4
推荐指数
1
解决办法
2898
查看次数

如何在C#中使用linq查询中的局部变量?

我有一个整数数组说int[] vals.

我想使用linq查询从这个int数组中获取一个点列表.

例如,如果我有这样的数组:

vals = new int[]{20,25,34}; 
Run Code Online (Sandbox Code Playgroud)

我希望我的积分列表为

var points = List<Point>{new Point(1,20),new Point(2,25),new Point(3,34)};
Run Code Online (Sandbox Code Playgroud)

我想使用一个局部变量,对于我的数组中的所有int值,它将增加1,这将是我的点的x值.

如何在C#中使用LINQ实现此结果?

c#

4
推荐指数
1
解决办法
1400
查看次数

如何将列表项设置为null C#?

我有一个名为container的用户控件,我在运行时添加其他用户控件.

我想从容器中删除所有控件,我正在做container.Controls.Clear()但我的控件仍然在内存中,我怎样才能使它们为空?

c# dispose memory-leaks

4
推荐指数
1
解决办法
952
查看次数

C#中的producer-consumer队列中的ArgumentException

在此输入图像描述我有一个生产者/消费者队列如下,但我得到了ArgumentWException.

以下是代码:

public class ProducerConsumer<T> where T : class
    {
        #region Private Variables
        private Thread _workerThread;
        private readonly Queue<T> _workQueue;
        private  object _enqueueItemLocker = new object();
        private  object _processRecordLocker = new object();
        private readonly Action<T> _workCallbackAction;
        private AutoResetEvent _workerWaitSignal;
        #endregion

        #region Constructor
        public ProducerConsumer(Action<T> action)
        {
            _workQueue = new Queue<T>();
            _workCallbackAction = action;

        }
        #endregion
        #region Private Methods 
        private void ProcessRecord()
        {
            while (true)
            {               
                T workItemToBeProcessed = default(T);
                bool hasSomeWorkItem = false;
                lock (_processRecordLocker)
                {
                    hasSomeWorkItem = …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

4
推荐指数
1
解决办法
452
查看次数

我是否需要在以下c#代码中使用锁定?

在下面的代码中,我使用两个线程来共享这个示例中的sane资源,queue所以我需要使用lock,en-queueing or dequeuing如果是,那么为什么因为程序似乎工作正常.

class Program
{   
    static Queue<string> sQ = new Queue<string>();

    static void Main(string[] args)
    {
        Thread prodThread = new Thread(ProduceData);
        Thread consumeThread = new Thread(ConsumeData);
        prodThread.Start();
        consumeThread.Start();
        Console.ReadLine();
    }

    private static void ProduceData()
    {
        for (int i = 0; i < 100; i++)
        {
            sQ.Enqueue(i.ToString());               
        }
    }

    private static void ConsumeData()
    {
        while (true)
        {
            if (sQ.Count > 0)
            {
                string s = sQ.Dequeue();
                Console.WriteLine("DEQUEUE::::" + s);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading thread-safety

4
推荐指数
1
解决办法
94
查看次数

如何从System.ServiceModel.Channels.Message获取消息内容?

我有一个传递给wcf服务的消息合同,并且有一个消息检查器,我正在使用该消息检查器查找wcf客户端发送的消息。我有消息,但我不知道如何从中获取数据。以下是我传递给wcf服务的消息请求。

[MessageContract]
public  class MyMessageRequest
{
    [MessageBodyMember]
    public string Response
    {
        get;
        set;
    }

    [MessageHeader]
    public string ExtraValues
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到消息的方法如下:

public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext)
{
        MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);

        request = buffer.CreateMessage();
        Console.WriteLine("Received:\n{0}", buffer.CreateMessage().ToString());
        return null;
}
Run Code Online (Sandbox Code Playgroud)

我想从消息中看到Response和ExtraValues的值,请任何人在此帮助我。

wcf

3
推荐指数
1
解决办法
2万
查看次数

为什么.NET事件的发送者参数类型为object而不是T类型?

可能重复:
在C#事件处理程序中,为什么"sender"参数必须是对象?
.NET中的事件签名 - 使用强类型"发件人"?

为什么.NET中的所有事件都有类型的第一个参数object,而不是泛型类型T?每次我必须得到我的发件人,我必须将它转换为更多派生类型.例如:

(Button)sender
Run Code Online (Sandbox Code Playgroud)

.net c# generics event-handling

3
推荐指数
1
解决办法
492
查看次数

如何使用C#.Net Compact Framework打开图像并编辑图像.

是否可以通过在图像上绘图来打开图像并编辑该图像,这意味着加载图像并在其上做一些划痕,就像我们可以在Windows Paint中那样做.

我怎么能在使用C#的.Net Compact Framework中做到这一点?

.net c# compact-framework

3
推荐指数
1
解决办法
5215
查看次数