我不明白我做错了什么.我有以下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) 在这个例子中:
<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关键字,它将引用类的当前实例化对象?
假设我想创建以下手势识别器
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类中.我可以找到什么?
要查看常规表达,我会阅读本教程.无论如何,该教程提到\b匹配单词边界(\ w和\ W字符之间).该教程还提供了一个链接,您可以在其中安装expresso(在创建正则表达式时有帮助的程序).
所以我在expresso中创建了我的正则表达式,并且我确实得到了一个匹配.现在,当我将相同的正则表达式复制到visual studio时,我没有得到匹配.看一看:


为什么我没有比赛?在即时窗口中,我显示了变量输出的内容.在expresso我得到一个匹配,在视觉工作室,我没有.为什么?
可能重复:
如何中止/取消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) 我的窗口中有一个ScrollViewer控件,当用户无法向下滚动页面时我想隐藏它.就像水平滚动查看器一样.这是一个例子:
所以这里两个滚动条都可见,因为滚动已启用:

如果我折叠listview的一些列,请注意水平滚动条最终会消失:

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

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

如果无法滚动,为什么它可见?我设置所有组框高度= 0除了最后一个,垂直卷轴仍然是鞋子?当无法再滚动时,水平滚动条消失了.为什么垂直卷轴的行为方式不一样?
当无法滚动时,我该怎么做才能使其隐藏?
互联网上有几篇有关如何使udp可靠的文章。我无法在C#上找到一个。所以也许我可以实现我的算法。
通过互联网研究,我认为udp有两个问题:
如果您有兴趣知道为什么我要使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#中使用它。
可能重复:
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)
这不适用于长阵列.什么是更有效的方法呢?
比方说,我有一个简单的程序:SomeProgram.exe和Uninstaller.exe这些程序都C:\ProgramFiles\MyProgram 伴随着几个dll的资源.
无论如何,我有一个简单的安装程序,可以为该路径安装几个先决条件.现在我的问题是如何SomeProgram.exe在窗口注册表上注册,以便我可以在控制面板中添加或删除程序.我想Uninstaller.exe在用户点击删除我的程序时执行.此外,我想在Windows启动菜单上创建一个文件夹,以便用户可以从那里启动程序,以防他不想在桌面上有快捷方式.
该视频非常精彩,展示了如何使用 .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# ×6
wpf ×2
.net ×1
abort ×1
arrays ×1
cancellation ×1
comparison ×1
controls ×1
html ×1
installer ×1
ios5 ×1
javascript ×1
jquery ×1
networking ×1
objective-c ×1
regex ×1
registry ×1
reliability ×1
resources ×1
styles ×1
udp ×1
windows ×1
xaml ×1