After reviewing a pluralsite course by Jason Roberts, I am trying to convert some of our code base to be in a more functional style.
For example, if we have:
var request = new RetrieveAttributeRequest
{
EntityLogicalName = EntityTypeDictionary.First(kvp => kvp.Key.Name == entityTypeName).Value,
LogicalName = attributeName
};
var response = (RetrieveAttributeResponse) _organizationService.Execute(request);
I can simply put my cursor over request, and use the ctrl+alt+N resharper shortcut and the result will be:
var response = (RetrieveAttributeResponse) _organizationService.Execute(new RetrieveAttributeRequest
{
EntityLogicalName = EntityTypeDictionary.First(kvp => kvp.Key.Name == entityTypeName).Value,
LogicalName = attributeName
});
Another example:
We start with:
var request = new RetrieveAttributeRequest
{
EntityLogicalName = EntityTypeDictionary.First(kvp => kvp.Key.Name == entityTypeName).Value,
LogicalName = attributeName
};
var response = (RetrieveAttributeResponse) _organizationService.Execute(request);
var attribute = response.AttributeMetadata;
var type = attribute.AttributeType;
var logicalName = attribute.LogicalName;
And after replacing everything inline:
var logicalName = ((RetrieveAttributeResponse) _organizationService.Execute(new RetrieveAttributeRequest
{
EntityLogicalName = EntityTypeDictionary.First(kvp => kvp.Key.Name == entityTypeName).Value,
LogicalName = attributeName
})).AttributeMetadata.LogicalName;
Question
Does replacing variables with their inline equivalents increase code safety and decrease null reference pointer exceptions?