小编Kev*_*lia的帖子

是否可以别名导入?

在这有很多名称冲突与现有代码库时拉C#,还有别名进口,所以你并不需要完全弄清楚每一次使用的命名空间的方式.例如:

using MyCompany.MyLibrary.Model as MMM
Run Code Online (Sandbox Code Playgroud)

那么你可以做到

MMM.MyObject
Run Code Online (Sandbox Code Playgroud)

代替

MyCompany.MyLibrary.Model.MyObject
Run Code Online (Sandbox Code Playgroud)

随着最近对swift 3.0的更新,我发现我的一些模型对象现在与Foundation类型发生冲突,并且我被迫NS在类名中添加了前缀Foundation.classname.如果我可以输入别名导入我的模型库就好了,就像上面给出的c#示例一样.这在swift 3.0中是否可行?如果没有,是否有另一种策略可以避免名称冲突导致必须在每种类型前面编写框架名称?我正在考虑像我们在obj-c中那样回到我的班级名称前缀,但是在我这样做之前我正试图探索我的选择.

swift swift3

11
推荐指数
1
解决办法
2248
查看次数

如何在django表单中创建字段列表

有没有办法制作一个实际上包含字段数组的django表单类?我有一个数据库,可以提出可变数量的问题来询问用户,每个问题都知道如何定义它的小部件......等等,我似乎无法将其连接到django表单.

我试过这个:

class MyForm(forms.Form):
    question = []
    questions = Question.objects.all()
    for q in questions:
        question.append(forms.CharField(max_length=100, label=q.questionText))
Run Code Online (Sandbox Code Playgroud)

但是当我创建一个新的实例时,这似乎并没有暴露我的问题列表MyForm.有没有办法使用django表单获取可变数量的表单字段,还是超出了它可以做的范围?

python django django-forms

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

这个if语句是否多余?

当我在查看String.Join方法实现时,我看到了一个这样的for循环:

public static string Join(string separator, params object[] values)
{
  ...
  for (int index = 1; index < values.Length; ++index)
  {
    sb.Append(separator);
    if (values[index] != null) // first if statement
    {
      string str2 = values[index].ToString(); 
      if (str2 != null)  // second if statement
        sb.Append(str2);
    }
  }
  ...
 }
Run Code Online (Sandbox Code Playgroud)

在这里,第二个if语句对我来说似乎是多余的.我认为如果values[index] != null真的那么怎么可能是values[index].ToString() == null 真的?据我所知,ToString总是必须归还一些东西,对吧?即使类型没有覆盖ToString方法,它也应该返回Type的完全限定名称(Namespace + Class name).所以当我在.NET Framework源代码中看到它时,我想也许有一个原因,我错过了什么.如果有一个原因,这是什么?

c# string

10
推荐指数
2
解决办法
791
查看次数

无法在多平台cocos2d-x应用程序中工作

因此,我正在尝试使用cocos2d-x最新版本创建一个简单的应用程序,由于某种原因无法将我的触摸连接起来.这是我的课程:

class GameLayer : public cocos2d::Layer
{
public:
    static cocos2d::Layer* createLayer();
    void update(float dt);
    virtual bool init();
    CREATE_FUNC(GameLayer);
private:
    bool onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event);
    void onTouchMoved(cocos2d::Touch* touch, cocos2d::Event* event);
    void onTouchEnded(cocos2d::Touch* touch, cocos2d::Event* event);
};
Run Code Online (Sandbox Code Playgroud)

cocos2d::Layer* GameLayer::createLayer()
{
    GameLayer *layer = GameLayer::create();

    return layer;
}

bool GameLayer::init()
{
    if (!cocos2d::Layer::init())
    {
        return false;
    }

    this->schedule(schedule_selector(GameLayer::update));
    this->setTouchEnabled(true);

    return true;
}

void GameLayer::update(float dt)
{

}

bool GameLayer::onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event)
{
    cocos2d::log("You touched %f, %f", touch->getLocationInView().x, touch->getLocationInView().y);
    return true;
}
void …
Run Code Online (Sandbox Code Playgroud)

c++ cocos2d-x cocos2d-x-3.0

9
推荐指数
1
解决办法
5254
查看次数

用于修改由NSMutableArray支持的NSArray的KVO通知

我正在尝试使用KVO来收听NSArray属性上的集合更改事件.在公开场合,该属性是一个只读NSArray,但由NSMutableArray ivar支持,以便我可以修改该集合.

我知道我可以将属性设置为新值以获得"设置"更改,但我有兴趣添加,删除,替换更改.如何正确通知NSArray的这些类型的更改?

@interface Model : NSObject

@property (nonatomic, readonly) NSArray *items;

@end

@implementation Model {
    NSMutableArray *_items;
}

- (NSArray *)items {
    return [_items copy];
}

- (void)addItem:(Item *)item {
  [_items addObject:item];
}

@end
Run Code Online (Sandbox Code Playgroud)

Model *model = [[Model alloc] init];

[observer addObserver:model 
      forKeyPath:@"items" 
         options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) 
         context:NULL];

Item *item = [[Item alloc] init];
[model addItem:newItem];
Run Code Online (Sandbox Code Playgroud)

观察者类:

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    if ([keyPath isEqualToString:@"items"]) {
        //Not called
    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c key-value-observing nsarray ios ios7

9
推荐指数
1
解决办法
9450
查看次数

检查多个包含在一个字符串上

所以我有条件,目前看起来像这样......

if (input.Contains(",") || input.Contains("/") || input.Contains(@"\") || input.Contains("."))
Run Code Online (Sandbox Code Playgroud)

我需要添加一些我想要检查的字符,并且想知道是否有更简洁的语法来完成同样的事情?类似于SQL的IN运算符?

if ( input IN (",", "/", @"\", ....etc )  )
Run Code Online (Sandbox Code Playgroud)

如果没有添加大量代码,任何人都知道有什么很酷的技巧吗?

c# string contains

8
推荐指数
4
解决办法
3万
查看次数

isAssignableFrom对于子类不返回true

所以我想检查一个类是否可以赋值给包含许多子类的超类,就像这样

public class A { 
    public A(){ }
}

public class B extends A { 
    public B(){ }
}

public class C extends B {
    public C(){ }
}

public static void main() {
    A a = new C();
    boolean whyAmIFalse = a.getClass().isAssignableFrom(B.class);
}
Run Code Online (Sandbox Code Playgroud)

为什么这会返回错误?显然它可以被分配给B类

B b = (B)a
Run Code Online (Sandbox Code Playgroud)

不会返回错误,为什么这会返回false.它不是自称的功能吗?是否有一个功能可以完成我想要的东西(即我是那个类或它的子类)?

java inheritance subclass

7
推荐指数
2
解决办法
5545
查看次数

带有风味的Android主题模块

所以这有点有趣,我不确定如何在android studio中设置它.我有几个模块,我在各种应用程序中使用了一些可重用的组件,但是使用flavor将某些主题注入可重用组件会很不错.我没有为我编写的每个应用程序的每个组件创建新的风格,而是考虑使用1个主题模块,每个我编写的应用程序都有一个风味,它有颜色方案等等.这是我想要它设置的方式:

App1: dependencies
reusable lib1
reusable lib3
reusable lib4
theme - App1 flavor

App2: dependencies
reusable lib1
reusable lib2
reusable lib4
theme - App2 flavor

现在我更喜欢可重用的libs可以简单地依赖于主题而不需要知道要构建哪种风格,并且主要的应用程序proj依赖于主题可以引用该应用程序的风格(使用此答案/sf/answers/1702129341/).原因是每个可重用模块都不能在其build.gradle依赖项中使用单个应用程序,否则会破坏引用它们的其他应用程序.为每个我写的应用程序制作每个可重用模块的味道也很繁琐.有没有办法实现这样的事情?这是我试过的:

App1 build.gradle:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile project(path: ':Theme', configuration: 'app1Release')
    compile project(':Lib1')
    compile project(':Lib2')
    compile project(':Lib4')
}
Run Code Online (Sandbox Code Playgroud)

App2 build.gradle:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile project(path: ':Theme', configuration: 'app2Release')
    compile project(':Lib1')
    compile project(':Lib3')
    compile project(':Lib4')
}
Run Code Online (Sandbox Code Playgroud)

Lib1 build.gradle:

dependencies {
    compile …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-productflavors

7
推荐指数
1
解决办法
1060
查看次数

在XAML中设置命令目标

我很难理解RoutedCommand的CommandTarget属性.

基本上,我有一些静态命令,在用户控件(而不是窗口)中有实现.我在用户控件中创建了一个命令绑定.如果我在usercontrol中声明了按钮,那么我就可以使用我的路由事件了.但是,当按钮位于usercontrol之外时,我无法使用我的路由事件.我认为命令目标将解决我的问题.

那么如何为工具栏usercontrol的按钮设置commandtarget,以便调用Container的Executed和CanExecuted?

编辑代码与micahtan更改的更改,但我仍然无法将其发送到CanExecute或Execute.

窗口XAML:

<Window x:Class="RoutedCommands.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:RoutedCommands"
    xmlns:toolbar="clr-namespace:RoutedCommands.Toolbar"
    Title="Window1" Height="300" Width="300">
    <StackPanel>
        <local:Container Width="100" Height="25" x:Name="MyContainer" />
        <toolbar:Toolbar Width="100" Height="25" CommandTarget="{Binding MyContainer}" />
    </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

工具栏XAML:

<UserControl x:Class="RoutedCommands.Toolbar.Toolbar"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:RoutedCommands"
    x:Name="MyToolbar"
    Height="300" Width="300">
    <Grid>
        <Button Command="{x:Static local:Commands.MyCommand}" Content="Try Me" CommandTarget="{Binding ElementName=MyToolbar, Path=CommandTarget, Mode=OneWay}" />
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

工具栏CS:

    public partial class Toolbar : UserControl
    {
        public Toolbar()
        {
            InitializeComponent();
        }

        // Using a DependencyProperty as the backing store for CommandTarget.  This enables animation, styling, binding, etc...
        public …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml routedcommand

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

获取命令绑定的单击位置

我想要做的是一个UserControl包含一个带网格的部分,点击网格时会发生一些事情.我需要点击发生的像素的位置,我正在做所有这些MVVM风格.我知道如何在ViewModel上提示操作:

<Grid>
 <Grid.InputBindings>
   <MouseBinding Gesture="LeftClick" Command="{Binding MinimapClick}"/>
 </Grid.InputBindings>
</Grid>
Run Code Online (Sandbox Code Playgroud)

我现在的问题是我不知道如何检索坐标...任何想法?我感谢您的帮助!

c# wpf command mvvm

6
推荐指数
2
解决办法
4902
查看次数