Предполагая, что это тип объекта, с которым вы имеете дело:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.cornerradius?view=netframework-4.7.2
Приведите к этому типу и затем получите доступ к нужному угловому свойству - их четыре.Когда вы создаете новый экземпляр радиуса угла, используя конструктор, который принимает один дубль, он устанавливает все четыре угла на одно и то же значение, но они могут отличаться
var a = ((CornerRadius)size).TopLeft;
Следовательно, вы не можете привести его к плавающей точке, потому что этоболее сложный, чем-то вроде указания Animal a = new Animal(4)
для четвероногого животного, а затем удивление, что вы не можете привести животное к int и получить 4
Когда вы жаловались, что вторая строка быланеверное приведение, потому что вы не можете присвоить float свойству типа CornerRadius.Документы утверждают, что его следует использовать следующим образом:
control.CornerRadius = new CornerRadius(15);
@ usr хорошо подходит;Ваша третья строка кода:
var a = (float)size ;
.. - красная сельдь, которая уводит вас от первоначальной проблемы и концентрирует внимание на том, «почему, когда я бросаю что-то в число с плавающей точкой, отладчик говорит мне, что это одна? »- отдельный вопрос, и один из синонимов.Если вы приведете что-то к long
, отладчик скажет вам, что это Int64
, bool
является синонимом Boolean
, float
с Single
и т. Д. То, что вы называете float / Single и что вызывает среда выполненияэто не имеет никакого отношения к тому факту, что вы не можете назначить примитивный числовой тип для CornerRadius - вы должны назначить экземпляр объекта типа CornerRadius