我在Silverlight全屏模式下遇到了一些问题.
如果我将应用程序切换到全屏,则不会处理键盘的所有输入.没有文本框输入,没有按键/按键事件,可能还有更多.这是一个演示此的示例应用程序:
Xaml:
<Canvas>
<TextBlock Text="Try some input:" Canvas.Top="10" Width="100"></TextBlock>
<TextBox x:Name="tboxInput" Width="100" Canvas.Top="30"></TextBox>
<Button x:Name="btnFullScreen" Content="Go Full Screen" Canvas.Top="60"></Button>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
代码背后:
public Page()
{
InitializeComponent();
btnFullScreen.Click += new RoutedEventHandler(btnFullScreen_Click);
}
void btnFullScreen_Click(object sender, RoutedEventArgs e)
{
Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
if (!Application.Current.Host.Content.IsFullScreen)
btnFullScreen.Content = "Go Full Screen";
else
btnFullScreen.Content = "Go Normal Screen";
}
Run Code Online (Sandbox Code Playgroud)
很容易看到,在全屏模式下,您无法在文本框中写入文本.我在这里做错了吗?有没有其他方法可以切换全屏,所以这不会发生?
如何获取DataTable并将其转换为List?
我在C#和VB.NET中都包含了一些代码,这两个问题都是我们创建一个新对象来返回数据,这是非常昂贵的.我需要返回对象的引用.
DataSetNoteProcsTableAdapters.up_GetNoteRow对象确实实现了INote接口.
我正在使用ADO.NET和.NET 3.5
c#代码
public static IList<INote> GetNotes()
{
DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter adapter =
new DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter();
DataSetNoteProcs.up_GetNoteDataTable table =
new DataSetNoteProcs.up_GetNoteDataTable();
IList<INote> notes = new List<INote>();
adapter.Connection = DataAccess.ConnectionSettings.Connection;
adapter.Fill(table);
foreach (DataSetNoteProcs.up_GetNoteRow t in table) {
notes.Add((INote)t);
}
return notes;
}
Run Code Online (Sandbox Code Playgroud)
VB.NET代码
Public Shared Function GetNotes() As IList(Of INote)
Dim adapter As New DataSetNoteProcsTableAdapters.up_GetNoteTableAdapter
Dim table As New DataSetNoteProcs.up_GetNoteDataTable
Dim notes As IList(Of INote) = New List(Of INote)
adapter.Connection = DataAccess.ConnectionSettings.Connection
adapter.Fill(table)
For Each t As DataSetNoteProcs.up_GetNoteRow In table
notes.Add(CType(t, …Run Code Online (Sandbox Code Playgroud) 我没有在Java中完成企业工作,但我经常看到反向域名包命名约定.例如,对于Stack Overflow Java包,您将代码放在包下面com.stackoverflow.
我刚刚遇到了一个使用类似Java的约定的Python包,我不确定支持和支持它的参数是什么,或者它们是否以与Java相同的方式应用于Python.你偏爱另一个的原因是什么?这些原因是否适用于各种语言?
直到一段时间以前,我的代码库非常接近#include地狱.每当我更改一个即使是非常重要的.h文件时,几乎所有文件都被重新编译.
如此高的标头依赖性的主要原因是我有许多需要内联的小函数,我的印象是,对于内联工作,它们需要与调用代码在同一个翻译单元中,所以它们需要是在标题中.对于内联函数甚至编译其他标题也需要包含在标题中,ad infimum.
输入链接时代码生成(在Visual Studio中).其中一个主要优点是现在的内联函数可以跨越翻译单元.
但我仍然不确定.我怎么能真正确定这些功能真的被内联?我意识到无论我在哪里定义函数,编译器基本上可以做任何想做的事情.
有没有办法检查内联的内容?
处理catch语句中发生的异常的最佳方法是什么.目前我们正在将异常消息写入响应对象的write方法.但我想要一个解决方案,通过该解决方案,用户将只获得一些错误信息,但我们必须获得有关错误的详细说明.我想知道在C#中用于异常处理的不同实践.
在Python中,iterable的接口是迭代器接口的子集.这具有的优点是,在许多情况下,它们可以以相同的方式处理.但是,两者之间存在重要的语义差异,因为对于iterable,__iter__返回一个新的迭代器对象而不仅仅是self.我怎样才能测试一个iterable真的是一个可迭代的而不是一个迭代器?从概念上讲,我理解iterables是集合,而迭代器只管理迭代(即跟踪位置)但不是集合本身.
当想要多次循环时,差异是重要的.如果给出了迭代器,则第二个循环将不起作用,因为迭代器已经用完并直接引发StopIteration.
测试一种next方法很有吸引力,但这看起来很危险而且有些不对.我应该检查第二个循环是否为空?
有没有办法以更加pythonic的方式进行这样的测试?我知道这听起来像是针对EAFP的LBYL的经典案例,所以也许我应该放弃?或者我错过了什么?
编辑: S.Lott在下面的回答中说,这主要是想要在迭代器上进行多次传递的问题,并且首先不应该这样做.但是,在我的情况下,数据非常大,并且根据情况必须多次传递以进行数据处理(绝对没有办法解决这个问题).
迭代也由用户提供,并且对于单次传递足够的情况,它将与迭代器一起工作(例如,为了简单起见,由生成器创建).但是,如果用户在需要多次传递时只提供迭代器,那么防止这种情况会很好.
编辑2:
实际上这是一个非常好的抽象基类的例子.将__iter__在迭代器和迭代方法具有相同的名称,但语义上是不同的!所以hasattr没用,但isinstance提供了一个干净的解决方案.
许多网站似乎支持https但不使用安全cookie.我想让我的网站使用安全cookie,但允许使用http访问某些内容.
一个明智的做法似乎是为真实会话提供一个安全的cookie,以及一个非安全的cookie,它只是一个标志,表示用户是否登录(在标题中显示不同的内容,如注销链接而不是登录链接).此cookie不包含任何"真实"会话信息,只是为了使网站可以显示登录用户与网站http部分登出的页面略有不同的页面.
将整个站点作为https是另一种选择,但这似乎比普通的http慢得多,所以不是很理想.
为什么网站不使用这种设置并拥有安全的cookie?饼干盗窃的可能性似乎使安全饼干成为必需品.有没有更好的方法来实现同样的目标?
我在文件系统的某个地方有一个程序集,例如"C:\ temp\test.dll".在那个程序集中有一个ResourceDictionary,例如"abc.xaml".
我怎样才能获得ResourceDictionary?也许有一种方法使用Reflections?到目前为止我没有找到解决方案.
提前致谢!
编辑:只是想添加我想要访问字典中的资源,例如样式.
我喜欢AS3事件模型 - 它有助于保持我的代码清洁和失败耦合.当我以前在AS2项目上工作时,我的代码不是那么整洁,而且类更依赖于彼此.由于AS2对范围的奇怪处理,我从未真正开始使用AS2事件系统.
由于我偶尔还要在AS2工作,我的问题是:
有没有人设法在AS2中模拟AS3事件API,如果没有,那么监听和调度事件以及处理范围的最佳做法是什么?