什么是可用于皮肤化/在.Net Winforms中创建应用程序的开源替代品
我已经阅读过有关使用UXTheme库的内容(我不知道如何去da :) :)但是这对Win XP到Win7有效
这个问题已被多次询问,"i ++和++ i之间有什么区别".接受的答案i ++和++ i有什么区别?我在很多其他地方也看到过这种语言,就是说,"i ++意味着'告诉我i的价值,然后增加',而++我的意思是'增加i,然后告诉我价值'.
让我感到困惑的是,我不知道在任何一种情况下我们都在讨论为i取回一个值.我认为i ++在语法上等同于:
i = i + 1;
Run Code Online (Sandbox Code Playgroud)
这是一个陈述,而不是表达,所以我不明白我在哪里被退回.
你能否说出声明的实际含义?
谢谢,
我在我的项目中使用SliverAppBar
和SliverListView
。
我需要BorderRadius
我的SliverList
那是我的SliverAppBar
.
这是我需要的屏幕截图:
这是我的代码:
Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
backgroundColor: Colors.transparent,
brightness: Brightness.dark,
actions: <Widget>[
IconButton(icon: Icon(Icons.favorite), onPressed: () {}),
IconButton(icon: Icon(Icons.share), onPressed: () {})
],
floating: false,
pinned: false,
//title: Text("Flexible space title"),
expandedHeight: getHeight(context) - MediaQuery.of(context).padding.top,
flexibleSpace: Container(
height: double.infinity,
width: double.infinity,
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
image: AssetImage("assets/images/Rectangle-image.png")
)
),
),
bottom: _bottomWidget(context),
),
SliverList(
delegate: SliverChildListDelegate(listview),
),
],
),
)
Run Code Online (Sandbox Code Playgroud)
所以,有了这段代码,用户界面就像这样......
可以建议我可以采取的任何其他方法来实现这种设计......
据我了解,我应该通过 Theme.of() 访问 flutter 中的样式常量。在 Android 中,我会将它们存储在dimens.xml
. 在我看来,ThemeData 中的所有条目都与填充量无关,而且似乎也不可能添加新条目。我应该在哪里存储填充量的常量?
因此,WPF不支持CompositeCollections视图的标准排序或过滤行为,因此解决此问题的最佳做法是什么.
有两个或更多不同类型的对象集合.您希望将它们组合成单个可排序和可过滤的集合(必须手动实现排序或过滤).
我考虑过的一种方法是创建一个只有少数核心属性的新对象集合,包括我希望对集合进行排序的属性,以及每种类型的对象实例.
class MyCompositeObject
{
enum ObjectType;
DateTime CreatedDate;
string SomeAttribute;
myObjectType1 Obj1;
myObjectType2 Obj2;
{
class MyCompositeObjects : List<MyCompositeObject> { }
Run Code Online (Sandbox Code Playgroud)
然后遍历我的两个对象集合来构建新的复合集合.显然这是一种蛮力方法,但它会起作用.我将获得新的复合对象集合上的所有默认视图排序和过滤行为,并且我可以在其上放置数据模板以根据实际存储在该复合项目中的类型来正确显示列表项目.
有什么建议以更优雅的方式做到这一点?
我有一个接口IKey
,我想有一个方法,将键作为字符串返回.我们考虑过这样的方法:
String GetAsString();
Run Code Online (Sandbox Code Playgroud)
它将返回字符串表示,但希望能够ToString()
在界面中再次声明以强制实现者实现它,但它并没有强制它们,因为它们具有继承自的实现Object
.有人建议:
public interface IKey
{
string ToString(string dummyParameter=null);
}
Run Code Online (Sandbox Code Playgroud)
这会强制在任何实现类中实现该方法,但是由于可选参数的工作方式,调用者不需要为此提供值,并确保ToString()
对作为接口的对象的方法的任何调用IKey
或者实现类将始终调用类实现而不是Object
实现.
在实现中,我们可以忽略dummyParameter
并返回我们想要的东西,安全地知道调用ToString()
将始终实际调用ToString(null)
.
现在这对我来说都是错误的,但与此同时它确实有一些相当不错的东西.它几乎与拥有一个方法完全相同,因为它GetAsString()
只能在IKey
接口和派生类上调用,除了它看起来像ToString()
我们想要使用的更自然的方法,并且我们能够强制在子类中实现它.
说过没有使用的伪参数感觉不对.
这可怕吗?还是很棒?
这个问题是适合SO还是适用于程序员?
例子
public class Key :IKey
{
public string ToString(string abc = null)
{
return "100";
}
}
Key key = new Key ();
Trace.WriteLine (key.ToString());
Trace.WriteLine (key.ToString(null));
Trace.WriteLine (key.ToString("ac"));
Trace.WriteLine (((object)key).ToString());
Run Code Online (Sandbox Code Playgroud)
输出:
100
100
100
Blah.Tests.Key
Run Code Online (Sandbox Code Playgroud) 我正在构建一个简单的控制台游戏,当按键按下时有一个移动的玩家,并且有自动移动的敌人,每种类型的敌人在X毫秒内移动一次.
据我timer
所知,我应该使用它,但我真的不知道如何在游戏循环中做到这一点(还没有建立,因为我不知道如何处理计时器.但它应该是while loop
我认为).当敌人"触摸"玩家时(同样的x和y),游戏结束.
一件重要的事情:我不能参加这个练习Thread
,但如果你有其他建议而不是使用Timer
你,欢迎你.
谢谢.
所以我试图找出是否有另一种方法来检查日期是否有效.因此,我们的想法是,如果日期有效,则继续使用给定日期,如果日期无效则使用今天的日期.
这就是我现在所得到的:
public void setBirthdate(int year, int month, int day)
{
if (month < 1 || month > 12 || day < 1 || day > DateTime.DaysInMonth(year, month))
{
Birthdate = DateTime.Today;
}
else
Birthdate = new DateTime(year, month, day);
}
Run Code Online (Sandbox Code Playgroud)
那么这样做有更短/更可读的方式吗?
提前致谢
当我尝试创建一些接口并需要使用泛型来实现它们时,我遇到了问题。 我的问题是如何使用类似的无类型
Kotlin 中没有任何内容
Java 中无效
例子:
我有一个基类
abstract class Base<Out, In> {
Future<Out> perform(In);
}
Run Code Online (Sandbox Code Playgroud)
我用的是正常情况,完美
class Download implements Base<bool, String> {
@override
Future<bool> perform(downloadUrl) async {
// do download and return result here
}
}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我不需要包含任何参数。但它需要 2 个泛型类型,所以我必须包含 void 作为输入
class DoSomething implements Base<bool, void> {
@override
Future<bool> perform(_) async {
// do some thing here, no use the input parameter
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当在 DoSomething 类中调用执行函数时,它会将 void 视为与 Java 不同的函数类型,它需要一个输入参数,而不是什么都没有
DoSomething().perform((){});
Run Code Online (Sandbox Code Playgroud)
我不想在执行函数中包含任何参数。请给我任何处理此案的建议和解决方案。