小编Ton*_*Nam的帖子

无法用jquery选择第一个孩子

我不明白我做错了什么.我有以下html元素:

<div id="accordion">
    <h3>
        <a href="#">Section 1</a></h3>
    <div>
        <p>
            Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque.
            Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a
            nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada.
            Vestibulum a velit eu ante scelerisque vulputate.
        </p>
    </div>
    <h3>
        <a href="#">Section 2</a></h3>
    <div>
        <p>
            Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus
            hendrerit, dolor at …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery css-selectors

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

绑定关键字指的是什么?

在这个例子中:

 <TextBox Name="textBox1" Height="23" Text="some text" HorizontalAlignment="Left" Margin="69,12,0,0"  VerticalAlignment="Top" Width="120" />
 <Label Content="{Binding Path=Text, ElementName=textBox1}" Height="28" HorizontalAlignment="Left" Margin="235,12,0,0" Name="label1" VerticalAlignment="Top" />
Run Code Online (Sandbox Code Playgroud)

我在文本框上键入的内容将显示在标签上.我正在学习xaml,我相信我理解大多数这样的Bindings.但我认为即使我理解发生了什么,理解Binding关键字引用的内容也会很好吗?例如,我可以:

  <ListView ItemsSource="{Binding}" Name="lv1" />
Run Code Online (Sandbox Code Playgroud)

我很难理解绑定实际上指的是什么?Binding关键字后面没有任何内容,那么它绑定的是什么?它是指那个控件吗?它是否类似于c#中使用的this关键字,它将引用类的当前实例化对象?

c# wpf xaml

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

从单独的类调用静态方法的选择器

假设我想创建以下手势识别器

UITapGestureRecognizer * c1 = [[UITapGestureRecognizer alloc] 
          initWithTarget:self 
          action:@selector([[MyGestureRecognizer ViewWasClicked1:]]; // error 
[c1 setNumberOfTapsRequired:1];
[c1 setNumberOfTouchesRequired:1];
[[self view] addGestureRecognizer:c1];
Run Code Online (Sandbox Code Playgroud)

但我想在一个单独的类上调用选择器.我有方法:

+ (void)ViewWasClicked1:(UITapGestureRecognizer *)sender {    

    NSLog(@"click1 mouse down");

}
Run Code Online (Sandbox Code Playgroud)

在MyGestureRecognizer类中.我可以找到什么?

objective-c ios5

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

为什么\ b与使用.net正则表达式的单词不匹配

要查看常规表达,我会阅读本教程.无论如何,该教程提到\b匹配单词边界(\ w和\ W字符之间).该教程还提供了一个链接,您可以在其中安装expresso(在创建正则表达式时有帮助的程序).

所以我在expresso中创建了我的正则表达式,并且我确实得到了一个匹配.现在,当我将相同的正则表达式复制到visual studio时,我没有得到匹配.看一看:


在此输入图像描述


在此输入图像描述

为什么我没有比赛?在即时窗口中,我显示了变量输出的内容.在expresso我得到一个匹配,在视觉工作室,我没有.为什么?

.net c# regex

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

取消执行方法的正确方法

可能重复:
如何中止/取消TPL任务?

我有一个方法需要一些时间来执行因此我返回结果作为回调.我的方法看起来像:

public static void DoWork( Action<object> onCompleteCallBack)
{
  Task.Factory.StartNew( () => {
    // Do work
    onCompleteCallBack(someResult);
  });
}
Run Code Online (Sandbox Code Playgroud)

现在我希望能够在用户不想等待的情况下停止执行该方法.结果这就是我的成果:

static void Main ( string[] args )
{            
  var cancelMethod = DoWork( x =>
  {                
    // method completed
    Console.Write( x.ToString() );
  });
  Thread.Sleep( 5000 ); // some time passes 

  // then user decides to abort method
  cancelMethod();
  Console.Read();
}

static Action DoWork ( Action<object> onCompleteCallBack )
{
  bool stopExecuting = false;
  Task.Factory.StartNew( () =>
  {
    for ( var i …
Run Code Online (Sandbox Code Playgroud)

c# abort task-parallel-library cancellation

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

使垂直ScrollViewer不可见

我的窗口中有一个ScrollViewer控件,当用户无法向下滚动页面时我想隐藏它.就像水平滚动查看器一样.这是一个例子:

所以这里两个滚动条都可见,因为滚动已启用: 在此输入图像描述

如果我折叠listview的一些列,请注意水平滚动条最终会消失: 在此输入图像描述

现在请注意垂直滚动条会发生什么:

在此输入图像描述

到目前为止它是可见的,这是好的,因为不是所有的内容都适合页面.但是,让我最大化页面并同时移动所有组框,以便所有内容都适合页面:

在此输入图像描述

如果无法滚动,为什么它可见?我设置所有组框高度= 0除了最后一个,垂直卷轴仍然是鞋子?当无法再滚动时,水平滚动条消失了.为什么垂直卷轴的行为方式不一样?

当无法滚动时,我该怎么做才能使其隐藏?

c# wpf resources controls styles

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

在C#中可靠的udp

互联网上有几篇有关如何使udp可靠的文章。我无法在C#上找到一个。所以也许我可以实现我的算法。

通过互联网研究,我认为udp有两个问题:


  1. 它不能确保所有数据都能到达目的地。
  2. 数据可能以不同的顺序到达目的地
  3. 也许还有第三个问题,我想让它可靠

如果您有兴趣知道为什么我要使udp可靠,为什么为什么不使用tcp,请看这个问题。相信我,我一直在尝试tcp穿孔。

无论如何,也许已经有了一个可以与c#一起使用的库,这将使我能够做到这一点。因为我已经注意到能够找到一个库,所以我一直在考虑以下算法:


“想象一下有计算机A和计算机B,而计算机A是将文件发送到计算机B的计算机”;

这是我一直在想的步骤:


1)计算机A打开文件进行读取,假设它是5000字节。这意味着计算机A将必须向计算机B发送5000字节,以确保没有字节丢失且顺序正确。


2)计算机A获取文件的前500个字节,并获取这些字节的哈希值。因此,现在计算机A有两件事,即这500个字节的哈希以及这些字节。(哈希将是一种有效的算法,例如md5,以确保以正确的顺序接收到数据。即md5(1,2,3)!= md5(2,1,3))


3)将前500个字节的哈希图像成像为kj82lkdi930fi1。


4)计算机B应该正在监听哈希和字节。


5)计算机A将哈希发送到计算机B,并且它也发送了500个字节。一旦发送,它就开始等待答复。


6)计算机B现在应该接收哈希和字节。计算机b对接收到的字节执行相同的算法md5。如果该结果等于收到的哈希,则它用{1,1,1,1,1,1,1}回复给A,否则它用{2,2,2,2,2,2,2,2}来回复


6.5)假设计算机B以正确的顺序获取了数据,因此它答复{1,1,1,1,1,},它还将哈希码保存在内存或数组中。


7)计算机A应该等待响应,以便发送下一个500字节。假设它收到{1,1,1}。因为它接收到1,所以知道它可以继续发送下一个500字节,并使用这500字节的新哈希码发送。


8)计算机A发送下一个500字节及其哈希码。


9)假设计算机B未接收到数据,因此它不会回复给A。计算机B仍将等待字节和哈希


8)由于计算机A在合理的时间内没有收到1,1,1,1,1或2,2,2,2,2,因此A将发送相同的字节并再次进行散列处理时间。


9)假设计算机B接收到哈希和字节,但字节接收顺序不同。当计算机B在那些字节上计算哈希时,该哈希将与接收到的哈希不匹配。结果,它将以{2,2,2,2,2,2,2}回复


10)如果计算机A收到2,2,2,2,2,2,则它将发送相同的字节和散列。如果由于某种原因未收到2,2,2,2,2,则它将在一段时间后发送相同的字节和哈希值。假设计算机A收到2,2,2,2,2


11)计算机A第3次发送相同的字节和哈希。


12)计算机B按正确的顺序接收哈希和字节。结果,它会回复1,1,1,1,1,1并将先前的哈希保存在内存中。(回想步骤6.5)


13)假装计算机A没有收到来自B的1,1,1,1响应。然后它将第四次发送相同的字节。


14)计算机B检查哈希,如果它等于接受的最后一个哈希,则它再次答复1,1,1,1,而不将那些字节写入文件。


15)算法继续进行,直到文件被传输为止。


我的意思是,显然我还需要添加其他一些东西给该算法,例如让计算机B知道何时完成传输。也许检查更多错误。如果计算机A长时间断开连接会发生什么情况。但是主要协议将类似于我所描述的协议。

那么您认为我应该开始实现此算法吗?我应该增加并每次发送更多字节。我的意思是发送1000而不是500?互联网上有很多文章向您介绍了几种技术,但是很少有文章为您提供所需语言的实用示例。在这种情况下,我需要在C#中使用它。

networking udp reliability file-transfer

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

确定字节数组是否包含特定顺序的字节

可能重复:
byte []数组模式搜索

假设我有一个字节数组:

byte[] myArray = new byte[]{1,2,3,4,5,6,7,1,9,3,4,3,4,7,6,5,6,7,8};
Run Code Online (Sandbox Code Playgroud)

如何确定myArray是否按顺序包含字节9,3,4,3?我必须迭代数组,将每个元素附加到一个字符串然后使用String.Contains()方法来知道该字节数组是否包含该顺序的元素?

我知道我可以这样做:

String s = "";
foreach(byte b in myArray)
{
  s = s + b.ToString();
}

//then do  

s.Contains("9343")
Run Code Online (Sandbox Code Playgroud)

这不适用于长阵列.什么是更有效的方法呢?

c# arrays comparison

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

在Windows注册表上注册程序,使其显示在"控制面板"上的"卸载程序"中

比方说,我有一个简单的程序:SomeProgram.exeUninstaller.exe这些程序都C:\ProgramFiles\MyProgram 伴随着几个dll的资源.

无论如何,我有一个简单的安装程序,可以为该路径安装几个先决条件.现在我的问题是如何SomeProgram.exe在窗口注册表上注册,以便我可以在控制面板中添加或删除程序.我想Uninstaller.exe在用户点击删除我的程序时执行.此外,我想在Windows启动菜单上创建一个文件夹,以便用户可以从那里启动程序,以防他不想在桌面上有快捷方式.

windows registry installer

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

使用需要会话 api 密钥的 .NET Minimal API 创建 API

该视频非常精彩,展示了如何使用 .net 6 创建最小 API:

https://www.youtube.com/watch?v=eRJFNGisJEo

令人惊奇的是它如何使用依赖注入来获取端点内所需的大部分内容。例如,如果我需要自定义标头的值,我会这样:

app.MapGet("/get-custom-header", ([FromHeader(Name = "User-Agent")] string data) =>
{
    return $"User again is: {data}";
});
Run Code Online (Sandbox Code Playgroud)

我可以有另一个端点,我可以在其中访问整个 httpContext,如下所示:

app.MapGet("/foo", (Microsoft.AspNetCore.Http.HttpContext c) =>
{
    var path = c.Request.Path;
    return path;
});
Run Code Online (Sandbox Code Playgroud)

我什至可以使用以下代码注册我自己的类:builder.Services.AddTransient<TheClassIWantToRegister>()

app.MapGet("...如果我注册我的自定义类,我将能够在每次需要时在端点 ( )上创建该类的实例


无论如何回到问题。当用户登录时,我向他发送以下内容:

{
  "ApiKey": "1234",
  "ExpirationDate": blabla bla
  .....
}
Run Code Online (Sandbox Code Playgroud)

用户必须发送1234令牌才能使用 API。我怎样才能避免重复我的代码,如下所示:

app.MapGet("/getCustomers", ([FromHeader(Name = "API-KEY")] string apiToken) =>
{
    // validate apiToken agains DB
    if(validationPasses)
       return Database.Customers.ToList();
    else
       // return unauthorized
});
Run Code Online (Sandbox Code Playgroud)

我尝试创建一个自定义类RequiresApiTokenKey并将该类注册为, …

c# asp.net-web-api

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