小编sab*_*ber的帖子

为什么我们不直接调用事件?

我见过许多开发人员想要调用Event它们将它分配给一个名为的本地变量handler并调用handler而不是Event直接调用.为什么我们不直接调用事件?

private void OnSomethingChanged(EventArgs e)
{
    if (SomethingEvent != null)
    {
        SomethingEvent(this, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# events event-handling

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

将NetworkStream复制到MemoryStream的时间为∞天

我有以下代码:

_clientRequestStream = _tcpClient.GetStream();

var memoryStream = new MemoryStream();
_clientRequestStream.CopyTo(memoryStream);
Run Code Online (Sandbox Code Playgroud)

CopyTo需要很长时间才能复制Stream到另一个Stream.似乎应用程序没有任何理由停在那里,或者至少我找不到原因.

.net c# streaming network-programming

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

在RichTextBox中更改所选文本的样式

如何更改所选文本的样式(如Font,FontSize,Brush)RichTextBox

更新:假设我有RichTextBox一个工具栏.用户来到RichTextBox框中选择文本并从工具栏更改字体大小.我想改变所选文字的样式.

.net c# wpf richtextbox

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

如何重定向到FluentSecurity中的特定页面?

嗨,我正在使用FluentSecurity来验证和验证我的MVC应用程序中的用户权限.在用户想要访问被拒绝的基本设置中,Action它会抛出异常.我想知道如何重定向到另一个页面(例如登录页面)而不是显示黄色异常页面?

.net c# asp.net asp.net-mvc fluent-security

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

你能简化这个linq到实体的groupBy查询吗?

 List<int> types = Hospitals.GroupBy(h => h.TypeId, (key, group) => group.First())
                    .Select(t=> y.TypeId).ToList();
Run Code Online (Sandbox Code Playgroud)

试图从List<Hospital>对象中获取不同的类型ID .我不是这些linq查询的专家,只是想知道是否有更好的方法来做到这一点.

c# linq linq-to-entities

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

想要使用LINQ而不是foreach但它不起作用

在下面的代码foreach循环工作正常,但当我尝试使用LINQ而不是使用foreach它不起作用没有异常没有错误.

这段代码有效:

    public static IEnumerable<PatternInfo> LoadPatterns() {
        var directoryInfo = new DirectoryInfo(PatternFullPath);
        var dirs = directoryInfo.EnumerateDirectories();
        var result = new List<PatternInfo>();
        foreach (var info in dirs)
        {
            result.Add(new PatternInfo
                           {
                               PatternName = info.Name,
                               TemplateFileNames = GetTemplateFiles(info.FullName)
                           });
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

但这不是:

    public static IEnumerable<PatternInfo> LoadPatterns() {
        var directoryInfo = new DirectoryInfo(PatternFullPath);
        var dirs = directoryInfo.EnumerateDirectories();
        var patterns = dirs.Select(info => new PatternInfo {
            PatternName = info.Name,
            TemplateFileNames = GetTemplateFiles(info.FullName)
        });
        return patterns;
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# linq loops

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

NetworkStream 不支持搜索操作

我正在创建简单的代理服务器,但遇到了一个奇怪的情况,我有以下代码:

var clientRequestStream = _tcpClient.GetStream();
var requestHeader = clientRequestStream.GetUtf8String();
Run Code Online (Sandbox Code Playgroud)

GetUtf8StringStream读取流(包含HttpRequest标题)的类的扩展方法。我需要提取这些标头以访问主机和请求的 URL。完成读取 NetworkStream 后。我需要执行搜索操作并设置它,clientRequestStream.Position = 0;因为我必须读取该流并将其写入另一个远程NetworkStream.

我不知道我应该如何解决这个问题。任何建议都会有所帮助。


编辑:我也尝试将 NetworkStream 复制到 MemoryStream 然后对 MemoryStream 执行查找操作,没有例外,但是当我想从 NetworkStream 读取时,其缓冲区始终为空。

我也用反射器看看里面发生了什么Stream.CopyTo。见下面的代码:

    private void InternalCopyTo(Stream destination, int bufferSize)
    {
        int num;
        byte[] buffer = new byte[bufferSize];
        while ((num = this.Read(buffer, 0, buffer.Length)) != 0)
        {
            destination.Write(buffer, 0, num);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这就是 CopyTo 所做的。即使我使用CopyTo问题仍然没有解决。因为它将源(此处为 NetworkStream)读取到最后。我有另一种方法来处理这种情况吗?

.net c# sockets network-programming tcpclient

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

为什么这些代码行没有按预期运行?

我正在创建一个聊天应用程序,我想在Bold中显示名称.首次加载表单时,我RichTextBox使用这些代码行在控件上显示数据库中的历史记录对话,我想以粗体显示名称:

以下是使这成为可能的所有代码:

string strProvider = "Data Source=" + srv_host + ";Database=" + srv_db + ";User ID=" + srv_user + ";Password=" + srv_pass;
        MySqlConnection myConn = new MySqlConnection(strProvider);
        try
        {
            myConn.Open();
            string strCmd = "SELECT * FROM comments WHERE task_id=@task_id AND ((from_usr=@from AND to_usr=@to) OR (from_usr=@to AND to_usr=@from)) ORDER BY at_time ASC";
            MySqlCommand myCmd = new MySqlCommand(strCmd, myConn);
            myCmd.Parameters.AddWithValue("from", frm_usr);
            myCmd.Parameters.AddWithValue("to", to_usr);
            myCmd.Parameters.AddWithValue("task_id", tid);
            myCmd.ExecuteNonQuery(); // execute now

            MySqlDataReader dr = myCmd.ExecuteReader();

            while (dr.Read())
            {
                string text …
Run Code Online (Sandbox Code Playgroud)

.net c# mysql richtextbox

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

如何从C#中的字符串开头删除空格,多个空格或制表符

我在阅读的文件中有字符串.有些人在开始时有空格或标签.有没有一种简单的方法可以删除空格和标签(空白的东西)?

例如

var abc = "   def";
Run Code Online (Sandbox Code Playgroud)

我想要的是删除"def"之前的东西.

谢谢,

更新:我相信这是正确的答案:

char[] arr = new char[] { '\t', ' ' }; // Trim these characters
text = text.TrimStart(arr);
Run Code Online (Sandbox Code Playgroud)

c# string formatting parsing

0
推荐指数
1
解决办法
126
查看次数

最灵活的.Net集合

我正在创建一个CustomControl,我需要我的控件有一个集合,几乎可以接受所有类型的泛型和非泛型集合.例如List<T>,IEnumerable等等

提前致谢.

.net c# collections

0
推荐指数
1
解决办法
127
查看次数

C#Parse Json - System.Runtime.Serialization.Json

我正在使用System.Runtime.Serialization.Json库

这不起作用

public class Detections
            {
                [DataContract]
                public class RootObject
                {
                    [DataMember(Name = "data")]
                    public DataObject Data { get; set; }
                }

                [DataContract]
                public class DataObject
                {
                    [DataMember(Name = "detections")]
                    public List<Detection> Detections { get; set; }
                }

                [DataContract]
                public class Detection
                {
                    [DataMember(Name = "language")]
                    public string Language { get; set; }
                    [DataMember(Name = "isReliable")]
                    public string IsReliable { get; set; }
                    [DataMember(Name = "confidence")]
                    public string Confidence { get; set; }
                }
            }
Run Code Online (Sandbox Code Playgroud)

那我该如何解析呢

{
     "data": {
      "detections": …
Run Code Online (Sandbox Code Playgroud)

c# parsing json google-translate

-1
推荐指数
1
解决办法
4187
查看次数