今天我发现我多年来对VB.NET的假设并不正确(令人担忧!).我假设在循环中声明的变量具有它声明的迭代的生命周期,但事实上它似乎具有整个过程的生命周期.
例如:
For i As Integer = 0 To 1
Dim var1 As Boolean
Console.WriteLine(var1.ToString())
var1 = True
Console.WriteLine(var1.ToString())
Next
Console.ReadKey()
Run Code Online (Sandbox Code Playgroud)
我假设输出为False,True,False,True但实际上它是False,True,True,True.
在C#中,等效代码将无法编译,因为您将获得错误"使用未分配的局部变量'var1'"的编译时错误.
我意识到有很多方法可以解决这个问题,最好的做法是在循环之外声明变量并在每个循环开始时重置它.
我发现这种行为对我来说是非常直观的,我想在VB.NET中至少有一个编译时警告/当我这样做.(我也可以在我已经拥有的任何项目上设置这个并得到警告,这将允许我检查我的假设不会导致错误).
有谁知道如何在VB.NET中生成编译时警告?我是唯一发现这种反直觉的人吗?
如果用户单击浏览器的后退按钮,则我需要出现提示并要求确认.如果用户单击"确定",则应该导航到xx.html.如果用户点击"取消",则应该阻止导航.我怎样才能做到这一点?
注意:我已经尝试过该onbeforeunload方法,但它适用于所有导航操作.例如,单击页面上的链接也将触发此事件并向用户显示消息.
如果您知道如何添加两个滚动条,请帮助我.
首先,我清楚所有人.
我在tablelayout中添加了两个滚动条,但主要问题是使用动态数据来填充tablerow.因此,如果只有一个记录,那么水平滚动视图顶部在数据之后.但我想在底部显示水平,也显示垂直.
谢谢
Prashant
我有一个ExpandableListActivity(使用SimpleCursorTreeAdapter),当用户点击子元素时,它会启动另一个活动.在新活动中按后退按钮时,所有列表项都会再次折叠.如何保存ExpandableListActivity的展开状态并再次将其还原.
我已经尝试像这样实现onSaveInstanceState()和onRestoreInstanceState()......
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Parcelable listState = getExpandableListView().onSaveInstanceState();
outState.putParcelable("ListState", listState);
}
@Override
protected void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);
Parcelable listState = state.getParcelable("ListState");
getExpandableListView().onRestoreInstanceState(listState);
}
Run Code Online (Sandbox Code Playgroud)
...但是onRestoreInstanceState()从未被调用过.我还尝试在onCreate()方法中恢复状态,但它也没有被调用:
if (savedInstanceState != null) {
Parcelable listState = savedInstanceState.getParcelable("ListState");
getExpandableListView().onRestoreInstanceState(listState);
}
Run Code Online (Sandbox Code Playgroud) 在Django中有一种方法可以过滤多个字段为空或空.
class TestModel(models.Model):
name = models.CharField(_('set name'), max_length=200)
manytomany = models.ManyToManyField('AnotherModel', blank=True, null=True)
print TestModel.objects.filter(manytomany__is_null=True)
Run Code Online (Sandbox Code Playgroud) 我想在Gtk#(和C#)中为库存创建一个简单的图表系统,可以在其中绘制.我不知道从哪里开始:最好从头开始?或者使用预先制作的东西?是否最好使用开罗?还是System.Drawing?我可以重用一些代码吗?
谢谢
我正在使用Dia制作UML图.const当函数是const什么时,我需要输入图表吗?如果是的话,在哪里?
我有一个代码调用$ .ajax,如下所示:
$.ajax({
type: "POST",
url: "/sandbox/graphloader/mock3",
async: false,
data: {calInput1:dates[0], calInput2:dates[1]},
success: function(data){
data=eval(data);
for(var x in data[0]){
//alert(data[0][x]);
//fill columns here;
}
fillPercents(column);
}});
Run Code Online (Sandbox Code Playgroud)
现在,这适用于所有浏览器,而不是Firefox.firebug显示它正在收到来自帖子的回复,但是由于某些未知错误,它没有显示数据.可能是什么问题?
我已经将C#中的项目转换为F#,绘制了Mandelbrot集.
不幸的是,渲染全屏需要大约一分钟,所以我试着找到一些方法来加快它.
几乎所有时间都是一个电话:
Array.map (fun x -> this.colorArray.[CalcZ x]) xyArray
Run Code Online (Sandbox Code Playgroud)
xyArray (double * double) [] =>(double的元组数组)
colorArray是int32 length = 255的数组
CalcZ 定义为:
let CalcZ (coord:double * double) =
let maxIterations = 255
let rec CalcZHelper (xCoord:double) (yCoord:double) // line break inserted
(x:double) (y:double) iters =
let newx = x * x + xCoord - y * y
let newy = 2.0 * x * y + yCoord
match newx, newy, iters with
| _ when Math.Abs newx > 2.0 …Run Code Online (Sandbox Code Playgroud) android ×2
c# ×2
ajax ×1
asynchronous ×1
c++ ×1
django ×1
f# ×1
firefox ×1
gtk# ×1
java ×1
javascript ×1
jquery ×1
state ×1
tablelayout ×1
text-files ×1
textbox ×1
uml ×1
vb.net ×1